给定一个编译时常量整数(一个对象,而不是宏),我可以在编译时将它与字符串文字结合起来,可能与预处理器结合使用吗?
例如,我可以通过将它们彼此相邻来连接字符串文字:
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!");
如果那不可能,我可以将常量字符串与字符串文字混合吗?即如果我的错误代码是字符串,而不是无符号?
如果两者都不可能,那么将这种字符串文字和数字错误代码组合在一起的最短、最干净的方法是什么?