考虑下面的代码:在constexpr函数中返回一个C字符串:为什么没有编译器的警告?
constexpr auto f()
{
auto str = "Hello World!";
return str;
}
int main(int argc, char* argv[])
{
static constexpr auto str = f();
std::cout << str << std::endl;
return 0;
}
这是正常的,我的编译器不会显示任何警告?它是否定义了行为?我有保证程序将显示"Hello World!"
?我预计"Hello World!"
不会超出该功能的范围...
“字符串文字的类型为const char *'”它们不是。 –
@ T.C。具体长度的const char数组? – Orient
@ T.C。的确,谢谢。 – lisyarus