constexpr引用有什么用吗
Is there any use for constexpr references?
正如标题所说,constexpr引用有什么有用的情况吗?像这样:
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&
来说都不是必需的。
相关文章:
- 什么时候在C++中返回常量引用是个好主意
- 返回常量对象引用 (getter) 和仅返回字符串有什么区别?
- 在C++17中,引用const字符串的语义应该是什么
- 引用文件的适当方法是什么?
- 引用捕获和在 lambda 中通过引用发送参数有什么区别 (C++)
- C++有什么方法可以在既不调用函数模板也不提供其模板参数的情况下引用函数模板?
- 引用 std::any 或 not_yet_in_std::whatever 的惯用方式是什么?
- 在 Rust 中,指针和引用有什么区别?
- 为什么或在什么情况下,你会将参数作为C++中的引用(或指针)传递给函数?
- 获取通用/前向引用地址有什么意义?
- 返回引用实例和非引用实例(return mystr & vs mystr)之间的区别是什么?
- 删除对象(具有不同类型)的引用时会发生什么情况?
- 对于具有引用返回类型的搜索算法,默认返回值应该是什么?
- 普通的右值引用和 std::forward 返回的引用有什么区别?
- 通过引用函数传递指针参数是什么意思?
- C++ 中的引用范围是什么?
- 将引用绑定到指针的语法是什么?(各种)
- constexpr引用有什么用吗
- 对struct::struct的未定义引用是什么意思
- 在 Python 的 C/C++ 扩展中,返回的 PyObject* 应该具有什么引用计数