C++11编译器报错:
“unable to find string literal operator ‘operator""fmt’ with ‘const char [13]’, ‘unsigned int’ arguments”
分析:
查看报错位置代码,代码如下
#define ANY_LOG(name, level, fmt, ...) \
do \
{ \
DBG_LOG_LOCALIZE_a(_log)(name, level, "[%-16s:%-4d]"fmt, __FILE__, __LINE__, ##__VA_ARGS__); \
}while (0)
观察代码,发现"[%-16s:%-4d]"与fmt之间没有空格,根据C++11新增的语法规则,"[%-16s:%-4d]"与fmt中间需要有空格
解决方案:
在"[%-16s:%-4d]"与fmt之间加一个空格