【发布时间】:2014-06-04 13:13:48
【问题描述】:
简介
-
Ref qualifiers :一种消除隐含对象的 rl 值歧义的方法。举个简单的例子,下面这个类
class example { int member; public: // ... int& value() &; // ^ int&& value() &&; // ^^ int const& value() const&; // ^ };使用这个 C++11 特性(用
^标记的语法),允许我们控制将被调用的value()的版本- 左值
- 临时工
- 常量左值
实际上,裁判资格适用于班级的
*this -
Defaulted / Deleted functions :指定一个特殊成员函数,使其具有编译器生成(默认)定义或不可访问(删除)。以
为例struct type { type(const type&) = delete; type& operator=(const type&) = delete; };上述结构,实现了不可复制,语义极其清晰
问题
- 结合这些功能是否可能/有效?
- 明确禁止或不良风格有哪些情况?
- 这种组合是否有任何用例/模式? (例如,快速轻松地创建基于 rl-valueness 的条件接口)
【问题讨论】: