【发布时间】:2015-04-21 06:47:02
【问题描述】:
我正在尝试初始化 constexpr 引用但没有成功。我试过了
#include <iostream>
constexpr int& f(int& x) // can define functions returning constexpr references
{
return x;
}
int main()
{
constexpr int x{20};
constexpr const int& z = x; // error here
}
但我收到编译时错误
错误:constexpr 变量 'z' 必须由常量表达式初始化
删除const 会导致
错误:将对“int”类型的引用绑定到“const int”类型的值删除限定符
尽管我感觉constexpr 自动暗示const 用于变量声明。
所以我的问题是:
-
constexpr引用有用吗? (即,比const引用“更好”) - 如果是,我该如何有效地定义它们?
PS:我看到了几个与我相关的问题,例如 Which values can be assigned to a `constexpr` reference? ,但我认为它们没有解决我的问题。
【问题讨论】:
标签: c++ c++11 reference constexpr