【问题标题】:What are reference qualifiers for functions? [duplicate]什么是函数的引用限定符? [复制]
【发布时间】:2015-09-13 18:23:49
【问题描述】:

根据this webpage,非静态成员函数可以在其声明中包含&&&。他们有以下例子

struct S {
    virtual int f(char) const, g(int) &&; // declares two non-static member functions
    };

1) 第二个函数的签名是否包含virtual

virtual int g(int) &&

2) 尾随&&是什么意思?

【问题讨论】:

  • 请为您的文本中的两个不同问题创建两个不同的问题。
  • && 用于 '*this' 的 r 值参考。

标签: c++ c++11


【解决方案1】:
struct S {
  virtual int f(char) const, g(int) &&;
};

struct D : S {
  virtual int f(char) const override;
  virtual int g(int) && override;
};

上面的代码在g++ and clang 中编译。这表明,至少在实践中,gS 中是virtual

其他问题请见What is "rvalue reference for *this"?

【讨论】:

  • 好好利用override 那里!我打算通过测试一个指向基址的指针是否会调用正确的g 来确认,但这要好得多!
猜你喜欢
  • 2017-05-20
  • 1970-01-01
  • 2013-10-28
  • 2014-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-25
相关资源
最近更新 更多