奇怪的C++成员函数声明语法:&&限定符

3

来自 Boost::Thread

template <typename R>
class shared_future
{
...
// move support
shared_future(shared_future && other);
shared_future(unique_future<R> && other);
shared_future& operator=(shared_future && other);
shared_future& operator=(unique_future<R> && other);
...
}

这些双“&”符号到底是什么?我看了《BS C++语言第三版》但没有找到任何解释。


1
我知道你可能在SO上找不到它,但这仍然是一个重复的问题:https://dev59.com/0nRA5IYBdhLWcg3wvgkb (不过,我会因为你的努力和清晰度给你一个+1的赞 :P) - Roger Pate
谢谢,希望标题的调整能让其他人找到解决方案。 - Hassan Syed
问题在于搜索时符号被忽略了,因此包括“&&”并没有帮助。你必须知道“右值引用”的名称才能找到关于它的SO问题。 - Roger Pate
如果你在谷歌上搜索"C++ && stackoverflow",这将是第一个搜索结果。 - Hassan Syed
1个回答

6

在C++0x发布之前,Boost库开始使用它有点奇怪。 - Hassan Syed
5
@Hassan: 不是这样的。在标准化之前尝试功能要好得多(标准的主要目标之一就是“标准化现有实践”),这种尝试是boost的主要目标之一。实际的boost实现使用预处理器来选择性地启用对右值引用的使用。 - Roger Pate

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接