如果给你一个编译时的常量整数(一个对象,而不是宏),你可以在编译时使用预处理器将它与字符串字面值组合起来吗?
例如,我可以通过将字符串字面值放在一起来连接它们:
bool do_stuff(std::string s);
//...
do_stuff("This error code is ridiculously long so I am going to split it onto "
"two lines!");
太棒了!但是如果我加入整数常量会怎样呢:
const unsigned int BAD_EOF = 1;
const unsigned int BAD_FORMAT = 2;
const unsigned int FILE_END = 3;
有没有可能使用预处理器将此内容与字符串文字拼接起来?
do_stuff("My error code is #" BAD_EOF "! I encountered an unexpected EOF!\n"
"This error code is ridiculously long so I am going to split it onto "
"three lines!");
如果不可能的话,我能把常量字符串和字符串字面量混合使用吗?也就是说,如果我的错误代码是字符串而不是无符号整数?
如果两者都不可能,那么拼接这些字符串字面量和数值型错误代码的最简洁、最干净的方法是什么?