C++ C+中的static const vs constepr成员字段+;11/14?
这些成员变量之间的区别是什么:C++ C+中的static const vs constepr成员字段+;11/14?,c++,templates,c++11,c++14,constexpr,C++,Templates,C++11,C++14,Constexpr,这些成员变量之间的区别是什么: struct my_class { static const int i = 0; static constexpr int j = 0; }; 如果我的理解是正确的,我可以使用I和j作为编译时常量。也就是说,std::array和std::array都应该可以工作。整数或枚举类型的成员没有区别(如您的示例所示)。对于所有其他类型,常量表达式: 左值到右值的转换(4.1),除非应用于 整型或枚举型的非易失性glvalue,它引用具有前一个 初始
struct my_class {
static const int i = 0;
static constexpr int j = 0;
};
如果我的理解是正确的,我可以使用
I
和j
作为编译时常量。也就是说,std::array
和std::array
都应该可以工作。整数或枚举类型的成员没有区别(如您的示例所示)。对于所有其他类型,常量表达式:
左值到右值的转换(4.1),除非应用于
- 整型或枚举型的非易失性glvalue,它引用具有前一个 初始化,使用常量表达式初始化,或[…]
- 一种非易失性glvalue,指用
定义的非易失性对象,或指此类对象的不可变子对象 对象,或[…]constexpr
读了那个问题后,我仍然无法找到我问题的答案:-)@HumamHelfawi我想知道当constexpr是静态的时,它有什么区别。这有点不同。