C++怎么让具体类型符合常规

发布时间:2021-11-25 13:58:10 作者:iii
来源:亿速云 阅读:107

这篇文章主要讲解了“C++怎么让具体类型符合常规”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++怎么让具体类型符合常规”吧!

C.11:让具体类型符合常规

Reason(原因)

Regular types are easier to understand and reason about than types that are not regular (irregularities requires extra effort to understand and use).

常规类型和非常规类型相比更容易理解和推测。理解和使用不符合常规的类型需要额外努力才行。

Example(示例)

struct Bundle {
   string name;
   vector<Record> vr;
};

bool operator==(const Bundle& a, const Bundle& b)
{
   return a.name == b.name && a.vr == b.vr;
}

Bundle b1 { "my bundle", {r1, r2, r3}};
Bundle b2 = b1;
if (!(b1 == b2)) error("impossible!");
b2.name = "the other bundle";
if (b1 == b2) error("No!");

In particular, if a concrete type has an assignment also give it an equals operator so that a = b implies a == b.

通常情况下,如果具体类型包含赋值操作,同时应提供判断相等的操作。也就是说有a=b意味着也有a==b。

Note(注意)

管理不允许克隆的资源,例如用于管理mutex的scoped_lock,由于经常在堆栈上分配,因此看起来像具体类型。但是这类类型的对象通常不能被拷贝(它们通常被移动),因此它们不属于常规的范畴,而是趋向于半常规。这样的类型经常被成为“只移动类型”。

感谢各位的阅读,以上就是“C++怎么让具体类型符合常规”的内容了,经过本文的学习后,相信大家对C++怎么让具体类型符合常规这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. oracle常规操作
  2. Microsoft RMS常规安装

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++

上一篇:Python怎样实现杨辉三角

下一篇:Python3中urllib.error异常怎么办

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》