我想使用constexpr成员函数初始化constexpr成员变量,但它没有编译.当我把这个功能移出课堂时,没关系.为什么会这样?有没有办法使用类成员constexpr函数来初始化成员constexpr变量?
我正在使用Apple LLVM 8.0.0版(clang-800.0.38).
谢谢你的帮助.
constexpr static int Add_Ext(int a, int b) { return a + b; }
class Foo
{
public:
constexpr static int Add_InClass(int a, int b) { return a + b; }
// This is OK.
constexpr static int kConstantX = Add_Ext(1, 2);
// This results in a compile error.
constexpr static int kConstantY = Add_InClass(1, 2);
};
Run Code Online (Sandbox Code Playgroud)
clang错误信息:
Constexpr variable 'kConstantY' must be initialized by a constant expression
Run Code Online (Sandbox Code Playgroud)