当前位置:  开发笔记 > 编程语言 > 正文

定义与constexpr静态成员的声明不同

如何解决《定义与constexpr静态成员的声明不同》经验,为你挑选了0个好方法。

考虑一下代码

#include 

struct Foo
{
    constexpr static int n = 42;
};

const int Foo::n; // note const, NOT constexpr

int main()
{
    std::cout << Foo::n;
}

静态成员的定义与类内声明不同,即const使用而不是constexpr.代码是否合法,如果是,为什么?它用gcc和clang编译.如果我们互换const并分别constexpr在定义和声明中,它也会编译.我知道这constexpr意味着const变量,但不是相反.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有