与4.7 g ++不一致的文字

时间:2013-08-16 10:58:11

标签: c++

我对代码中的简单定义存在很大问题。我已经阅读过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

还有其他建议吗?

1 个答案:

答案 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;
}