在 C 编程领域,出现了一个有趣的问题:对 const 类类型的右值引用有什么用处吗?虽然人们一开始可能会认为它们是多余的,但仔细检查就会发现它们偶尔有用。
C 0x 语言标准草案提供了它们的应用示例。两个函数模板 ref 和 cref 定义如下:
template <class T> void ref(const T&&) = delete; template <class T> void cref(const T&&) = delete;
这些重载有一个关键目的:防止使用右值调用其他 ref(T&) 和 cref(const T&) 函数。如果未定义对 const 的右值引用,则这是可能的。
更新:
根据官方 C 标准(N3290)的进一步检查,相同的函数模板出现在第 20.8 节 [function.objects]/p2 中。此外,最新的 post-C 11 草案 (N3485) 也在同一位置包含这些模板。
以上是Const Rvalue 引用在 C 中什么时候有用?的详细内容。更多信息请关注PHP中文网其他相关文章!