constexpr 引用有什么用吗?
Is there any use for constexpr references?
正如标题所说,constexpr引用有什么有用的case吗?像这样:
static const int myvar = myfunc(); // myfunc is not constexpr
constexpr const int& myref = myvar;
myref
不能用在需要常量表达式的地方,因为它引用的变量不是常量表达式。我看不出这与以下内容有何不同:
static const int myvar = myfunc();
const int& myref = myvar;
生成的程序集看起来也是一样的。
constexpr&
在程序启动前被初始化并且必须绑定到具有静态存储持续时间的变量,这对于 const&
.
来说都不是必需的
正如标题所说,constexpr引用有什么有用的case吗?像这样:
static const int myvar = myfunc(); // myfunc is not constexpr
constexpr const int& myref = myvar;
myref
不能用在需要常量表达式的地方,因为它引用的变量不是常量表达式。我看不出这与以下内容有何不同:
static const int myvar = myfunc();
const int& myref = myvar;
生成的程序集看起来也是一样的。
constexpr&
在程序启动前被初始化并且必须绑定到具有静态存储持续时间的变量,这对于 const&
.