Pra*_*een 4 c++ constexpr c++11
#include <iostream>
using namespace std;
constexpr int r =100;
int main()
{
constexpr int &k = r ;
cout << k << endl;
}
Run Code Online (Sandbox Code Playgroud)
编译此代码会在编译时将"error:binding'const int'引用为类型'int&'丢弃限定符".
编译加入const之后int.
constexpr int const & k = r ;
// ...........^^^^^
Run Code Online (Sandbox Code Playgroud)
问题是constepxr暗示const,所以当你定义时r
constexpr int r =100;
Run Code Online (Sandbox Code Playgroud)
你定义constexpr为一个int const值(也考虑到const应用于左边的类型;只有在左边没有类型时才在右边;所以const int并且int const是相同的东西).
但是你的 k
constexpr int & k = r ;
Run Code Online (Sandbox Code Playgroud)
不是const(隐含的constexpr)引用,int const而是仅仅const引用int.
并且您无法int使用int const值初始化对变量的引用.
您可以通过解决错误k一个const一个参考int const.
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |