2017-04-21 51 views
8

我看到在Quora的C++中声明了一个参考变量作为常量。在参考定义中使用constexpr和const

static constexpr const int& r = 3; 

那么,为什么这两个constexprconst在单个语句中使用?

这种类型的声明的目的是什么?

+0

有用的阅读:http://stackoverflow.com/questions/14116003/difference-between-constexpr-and-const目的是什么?示范,我想。 – user4581301

+3

类似的问题,http://stackoverflow.com/questions/28614591/how-to-initialize-a-constexpr-reference。 'constexpr'适用于引用,'const int'是引用的东西,它们有不同的含义 –

回答

5

const变量是初始化后无法修改的变量(例如const int a = 1)。

constexpr变量是constant expressions并且可以在编译时使用。 constexpr用于变量声明意味着const。

但是,在此声明中,const适用于int,而constexpr适用于const int&(对const int的引用)。

+0

“这意味着'const'是多余的”很难。 –

+1

除非内存使我失败,因为C++ 14'constexpr'不再暗示'const'。 –

+4

@AndyProwl这是成员函数。 –