首页 >后端开发 >C++ >`const Foo&&` 右值引用在 C 中什么时候有用?

`const Foo&&` 右值引用在 C 中什么时候有用?

Patricia Arquette
Patricia Arquette原创
2024-12-11 10:39:151026浏览

When Are `const Foo&&` Rvalue References Useful in C  ?

常量右值引用:实用视角

在 C 中,人们可能会质疑对 const 对象的右值引用的实用性。为了更深入地研究这个主题,让我们分析这个问题:“假设 Foo 是一个类类型,const Foo& & 是否有优势?”

令人惊讶的是,const 右值引用提供了明显的好处。 C 0x 草案本身在以下代码中举例说明了它们的用法:

template <class T> void ref(const T& &) = delete;
template <class T> void cref(const T& &) = delete;

这些重载有效地防止其他函数(例如 ref(T&) 或 cref(const T&))绑定到右值对象。这保证了这些函数的预期行为。

在未公开发布的官方标准文档 N3290 中,第 20.8 节中存在相同的代码:

template <class T> void ref(const T& &) = delete;
template <class T> void cref(const T& &) = delete;

此外,在在最新的草案 N3485 中,这些 const 右值引用重载仍然出现在第 20.8 节中,强调了它们的持续存在

因此,虽然人们一开始可能认为 const 右值引用缺乏实用性,但它们在 C 标准和其他上下文中的实际应用强调了它们的重要性。

以上是`const Foo&&` 右值引用在 C 中什么时候有用?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn