相关疑难解决方法(0)

是否对const的rvalue引用有用吗?

我猜不是,但我想证实一下.是否有用const Foo&&,Foo哪种类型?

c++ const rvalue-reference c++11

72
推荐指数
4
解决办法
9033
查看次数

为什么T const &&不是转发参考?

在模板的上下文中,应用以下"引用折叠"规则:

template <typename T>
void foo(T && t)
{
    //T&  &   -> T&
    //T&  &&  -> T&
    //T&& &   -> T&
    //T&& &&  -> T&&
}
Run Code Online (Sandbox Code Playgroud)

为什么语言禁止使用const限定符的"通用引用" ?

template <typename T>
void foo(T const && t)
Run Code Online (Sandbox Code Playgroud)

如果类型已经解决了参考(4个案例中的3个),那似乎是有意义的.

我确信这个想法与语言的其他一些设计方面不相容,但我看不出全貌.

c++ templates const move-semantics forwarding-reference

10
推荐指数
1
解决办法
241
查看次数

`const &&`是否绑定到所有prvalues(和xvalues)?

C++标准定义了以下删除的函数;

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

template <class T>
void cref(const T&&) = delete;
Run Code Online (Sandbox Code Playgroud)

这是为了通过禁止函数绑定到临时值(rvalues)来帮助确保函数不被滥用.

  • 是否const &&绑定到所有rvalues,特别是prvalues?
  • 将const &&绑定到所有"移动的对象"(xvalues;基本上是从std::move或类似的东西返回)?

我可以说它应该,但我没有任何"证据".

  • 或者相反,是否存在rvalue(prvalue或xvalue)不会绑定的情况const &&?
    • 如果是这样,怎么会这样?

注意:评论中的一些清晰度,这个问题严重影响经典的右值,prvalue值类别.

c++ rvalue rvalue-reference language-lawyer c++11

7
推荐指数
1
解决办法
739
查看次数