Const 右值引用:一个罕见但有用的概念
const 的右值引用(const Foo&&)是否有任何实际用途的问题让一些程序员感到困惑。从直觉上看,它们不会,但让我们更深入地研究这个主题并探索潜在的应用程序。
根据 C 0x 草案,常量右值引用在某些情况下可能是有益的。例如,在草案本身使用的以下代码片段中:
template <class T> void ref(const T&&) = delete; template <class T> void cref(const T&&) = delete;
这些重载确保其他 ref(T&) 和 cref(const T&) 函数不会绑定到右值,从而防止意外行为。
检查官方 C 11 标准(N3290)后,可以在第 20.8 节“函数对象”中找到相同的声明[function.objects]/p2:
template <class T> void ref(const T&&) = delete; template <class T> void cref(const T&&) = delete;
最新公开的 post-C 11 草案 (N3485) 也在同一部分中包含这些声明。这些示例表明 const 右值引用已被认为足够有用,可以包含在 C 语言标准中。虽然它们的用例可能是特定的,但它们为某些编程情况提供了有价值的构造。
以上是Const Rvalue 引用在 C 中有实际用途吗?的详细内容。更多信息请关注PHP中文网其他相关文章!