请问为什么这段代码无法编译?
// source.cpp
constexpr const char* func(const char* s) { return s;}
constexpr bool find(const char *param) {
constexpr const char* result = func(param);
return (param == 0);
}
int main()
{
constexpr bool result = find("abcde");
}
"编译命令:
"$ g++ -std=c++14 source.cpp
我尝试过gcc5.4和gcc6.4。出现了错误:
source.cpp: In function ‘constexpr bool find(const char*)’:
source.cpp:5:46: error: ‘param’ is not a constant expression
constexpr const char* result = func(param);
^
constexpr
中find的定义相矛盾。请参见https://en.cppreference.com/w/cpp/language/constexpr。 - HappyCactus