我看到在Quora的C++中声明了一个参考变量作为常量。在参考定义中使用constexpr和const
static constexpr const int& r = 3;
那么,为什么这两个constexpr
和const
在单个语句中使用?
这种类型的声明的目的是什么?
我看到在Quora的C++中声明了一个参考变量作为常量。在参考定义中使用constexpr和const
static constexpr const int& r = 3;
那么,为什么这两个constexpr
和const
在单个语句中使用?
这种类型的声明的目的是什么?
const
变量是初始化后无法修改的变量(例如const int a = 1
)。
constexpr
变量是constant expressions并且可以在编译时使用。 constexpr用于变量声明意味着const。
但是,在此声明中,const
适用于int,而constexpr
适用于const int&
(对const int的引用)。
“这意味着'const'是多余的”很难。 –
除非内存使我失败,因为C++ 14'constexpr'不再暗示'const'。 –
@AndyProwl这是成员函数。 –
有用的阅读:http://stackoverflow.com/questions/14116003/difference-between-constexpr-and-const目的是什么?示范,我想。 – user4581301
类似的问题,http://stackoverflow.com/questions/28614591/how-to-initialize-a-constexpr-reference。 'constexpr'适用于引用,'const int'是引用的东西,它们有不同的含义 –