首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以显式地对ref限定符进行默认/删除的函数重载?

是否可以显式地对ref限定符进行默认/删除的函数重载?
EN

Stack Overflow用户
提问于 2014-06-04 13:13:48
回答 1查看 286关注 0票数 6

简介

  • Ref qualifiers:一种消除隐含对象rl值的方法.作为一个简单的例子,下面的类 类示例{ int成员;public: // .int& value() &;// ^ int&& value() && int;// ^& value() const&;// ^ }; 使用此C++11特性(语法标记为^)允许我们控制将被调用的value()版本

代码语言:javascript
复制
- l-values
- temporaries 
- const l-values

实际上,参考资格适用于classe的*this

  • Defaulted / Deleted functions:指定一个特殊的成员函数作为编译器生成(默认的)定义或不可访问(、delete、)。举个例子 结构类型{ type(const type&) = delete;type& operator=(const type&) = delete;}; 上面的结构,以非常清晰的语义实现了不可复制的

问题

  • 是否有可能/有效地结合这些特性()?
  • 在哪些情况下,明确禁止糟糕的样式
  • 这样的组合是否存在用例/模式?(例如创建基于rl值的条件接口,快速且容易)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-04 13:22:04

是的,但是没有什么用处,因为构造函数和析构函数不能被引用。

您可以参考-限定赋值运算符:

代码语言:javascript
复制
struct S {
  S &operator=(const S &) && = default;
};

int main() {
  S s;
  S() = s;  // OK
  s = S();  // error - LHS must be an rvalue
}

然而,我有点不知所措,无法想象这会有什么用。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24038462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档