#include <iostream>
using namespace std;
constexpr int r =100;
int main()
{
constexpr int &k = r ;
cout << k << endl;
}
编译此代码给出“错误:‘const int的’结合型的参考‘诠释&’丢弃限定”在编译时。
编译const
后加入int
。
constexpr int const & k = r ;
// ...........^^^^^
问题是,constepxr
意味着const
,所以当你定义r
constexpr int r =100;
您定义constexpr
作为int const
值(也考虑到,const
应用到左侧的账户类型;右侧仅如果没有在左边一个类型,所以const int
和int const
是一样的)。
但是,你的k
constexpr int & k = r ;
不是const
(由constexpr
暗示)参照一个int const
但只有const
参照一个int
。
而且你无法初始化与int
值的引用到int const
变量。
您可以通过k
一个const
参考的int const
解决错误。