C++:将__PRETTY_FUNCTION__附加到c字符串

add*_*ddy 1 c++ gcc c-preprocessor

我试图__PRETTY_FUNCTION__在编译时附加到c-string前缀.但它无法编译.然而,如果我这样做,__FILE__它不会失败.

const char* s1= "Prefix" __FILE__;            // works
const char* s2= "Prefix" __PRETTY_FUNCTION__; // compilation error

error: expected ',' or ';' before '__PRETTY_FUNCTION__'
const char* s2 = "Prefix" __PRETTY_FUNCTION__;
                          ^~~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

我正在使用gcc和clang.我错过了什么吗?

GPh*_*ilo 6

从GCC 文档中__PRETTY_FUNCTION__:

[ __func____PRETTY_FUNCTION__]是变量,而不是预处理器宏,并且不能用于初始化char数组或与字符串文字连接.