【问题标题】:what is the && means at the end of a function [duplicate]函数末尾的&&是什么意思[重复]
【发布时间】:2019-08-09 09:29:58
【问题描述】:

读到这个page时我很困惑

struct S
{
    virtual int f(char) const, g(int) &&; // declares two non-static member functions
    virtual int f(char), x; // compile-time error: virtual (in decl-specifier-seq)
                            // is only allowed in declarations of non-static
                            // member functions
};

什么是

virtual int g(int) &&;

表示关于?

【问题讨论】:

    标签: c++


    【解决方案1】:

    函数末尾的&&表示当this具有右值值类别时选择该函数。

    member functions:

    一个非静态成员函数可以在没有引用限定符的情况下声明,可以使用左值引用限定符(参数列表后面的标记 &)或右值引用限定符(参数列表后面的标记 &&)。在重载决议期间,类 X 的非静态 cv 限定成员函数被处理如下:

    没有引用限定符:隐式对象参数具有对 cv 限定 X 的类型左值引用,并且还允许绑定右值隐含对象参数

    lvalue ref-qualifier:隐式对象参数具有对 cv 限定 X 的左值引用类型

    rvalue ref-qualifier:隐式对象参数具有对 cv 限定 X 的类型 rvalue 引用

    【讨论】:

      猜你喜欢
      • 2015-05-29
      • 2011-05-02
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 2019-10-14
      • 2012-05-07
      • 1970-01-01
      相关资源
      最近更新 更多