我对代码中的简单定义存在很大问题。我已经阅读过Mozilla bug网站报告中的修复程序,但它在我的情况下不起作用。
代码的原始部分(当然它在4.6中有效):
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
#define A "A: %20"PRIu64
error: inconsistent user-defined literal suffixes ’A’ in string literal
修复后:
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
#define A "A: %20" PRIu64
error: inconsistent user-defined literal suffixes ’A’ in string literal
还有其他建议吗?
答案 0 :(得分:0)
我建议升级到g++
的更高版本 - 在5.4版中,两种形式的代码都可以正常工作:
#include <iostream>
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
#define A "A: %20"PRIu64
#define B "B: %20" PRIu64
int main() {
std::cout << A << std::endl;
std::cout << B << std::endl;
}