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

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

8得票1回答
显式的ref-qualified转换运算符模板实际应用

给定以下转换运算符 struct A { template<typename T> explicit operator T&& () &&; template<typename T> explicit ope...

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

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

7得票1回答
带有引用限定符的getter函数的最佳实践

以下代码会导致未定义的行为: class T { public: const std::string& get() const { return s_; } private: std::string s_ { "test" }; } void breaking()...

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

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

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

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

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

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

9得票1回答
为什么析构函数不能有引用限定符?

除了“因为标准规定如此”的原因外,以下代码不允许的原因是什么? struct Foo { ~Foo() && {} ~Foo() & {} }; 我知道这是非法的,但我想知道为什么。 我在思考一个老问题-避免未命名实例,例如在使用守卫对象时: ...