268得票3回答
“rvalue reference for *this” 提案是什么意思?

在clang的C++11状态页面上看到了一个名为“rvalue reference for *this”的提案。 我已经阅读了很多关于rvalue引用的内容,并且理解了它们,但我不认为我了解这个。我在网上也找不到很多使用这些术语的资源。 页面上有一个指向提案论文的链接:N2439(将移动语...

30得票2回答
成员函数签名末尾的&(和号)代表什么意思?

我记不清是哪个讲座了,但最近我看了一些来自CppCon 2017的讲座,其中有人提到了一种附注的方式,即唯一的真正重载operator=的方法应该是这样的: class test { public: test& operator=(const test&) &...

27得票1回答
带有ref-qualifiers的重载解析

在使用ref-qualified函数重载时,我发现GCC(4.8.1)和Clang(2.9和trunk)返回的结果不同。请参考以下代码:#include <iostream> #include <utility> struct foo { int& b...

19得票2回答
函数的引用限定符是否有真正的用例?

最近我了解了关于函数的引用限定符,例如。 struct foo { void bar() {} void bar1() & {} void bar2() && {} }; 在哪些情况下我可能需要这个功能?这个语言特性有没有实际的用例呢?

16得票2回答
为什么在这种情况下无法推导模板参数?

有人能解释一下为什么编译器(g++,visual c++)在这种情况下无法推导出模板参数吗? struct MyClass { void Foo(int x)& {} void Foo(int x)&& {} }; template<type...

15得票3回答
从右值引用限定的方法中移动还是不移动?

在下面的 C++11+ 代码中,应该优先选择哪种 return 语句构造方式?#include <utility> struct Bar { }; struct Foo { Bar bar; Bar get() && { ...

11得票1回答
成员函数的cv-ref限定符转发

如果没有其他重载(例如f(T &)或f(volatile T &&))(成员)函数模板template< typename T > f(T &&);,那么T &&被称为转发引用,而T是U,或者对于某些cv限定类型U,T &am...

9得票1回答
作为模板参数的引用限定成员函数?

这在clang 3.3中可以编译成功: template <typename T> struct M; template <typename R, typename C, typename... A> struct M <R (C::*)(A...)> ...