小编Poi*_*tia的帖子

使用constexpr成员函数初始化constexpr成员变量

我想使用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)

c++ constexpr c++11

6
推荐指数
1
解决办法
891
查看次数

标签 统计

c++ ×1

c++11 ×1

constexpr ×1