【发布时间】:2015-10-31 02:43:20
【问题描述】:
请考虑这两行代码
void doStuff(int ** i)
void doStuff2( int && i)
在第一个中,我假设它是指针的指针,第二个是右值, 我遇到了this question,它解释了右值,但我什么时候应该使用第一个,什么时候应该使用第二个?
你能帮我解释一下吗?
【问题讨论】:
-
&&不是引用的引用,而是右值引用。 -
第二个不是“引用的引用”(没有这样的东西),它是一个右值引用。它的使用需要一篇完整的论文。
-
指针的指针在 C++ 中几乎不会经常使用,因为引用、智能指针和容器的流行。我发现它在遍历老式单链表时最有用。
-
比较右值引用和指向指针的指针是没有意义的。它们是完全不同的东西。
-
@RiadhHAJAMOR - IMO 你不应该在 C++ 中真正使用
**,除非你正在处理旧的 C API,如&&- 这主要用于移动语义的上下文中。