代码之家  ›  专栏  ›  技术社区  ›  mans

为什么出现此错误:constexpr在此处无效

  •  12
  • mans  · 技术社区  · 6 年前

    我有以下代码:

    class myClass
    {
            constexpr int x = 4;
    };
    

    在visual studio 2015上,我遇到以下错误:

    'constexpr' is not valid here
    

    为什么会出现此错误?我想要一个const静态变量,可以在头文件上初始化它。

    在下一步中,我想将类更改为模板,但该常量与clas的类型无关。

    2 回复  |  直到 6 年前
        1
  •  19
  •   Vittorio Romeo    6 年前

    非- static 数据成员不能声明为 constexpr 使用

    class myClass
    {
        static constexpr int x = 4;
    };
    

    相反

        2
  •  1
  •   Gal Keren    6 年前

    我想要一个const静态变量,可以在头文件中初始化它

    如果您主要关心的是可共享给所有模板类型实例的常量值,那么您可以只更改为以下内容:

    class myClass
    {
        static const int x = 4;
    };
    

    如果您关心的是内存空间(尽管它在所有实例之间共享),那么您可以只使用编译预处理解决方案(即#Define X 4)