温馨提示×

温馨提示×

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

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

C++使用模式术语定义方法是什么

发布时间:2021-11-24 11:10:12 来源:亿速云 阅读:112 作者:iii 栏目:大数据

这篇文章主要介绍“C++使用模式术语定义方法是什么”,在日常操作中,相信很多人在C++使用模式术语定义方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++使用模式术语定义方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

T.26:相比简单的语法,根据使用模式术语定义概念更好

Reason(原因)

The definition is more readable and corresponds directly to what a user has to write. Conversions are taken into account. You don't have to remember the names of all the type traits.

这种定义方式更具可读性,和用户必须写的内容直接对应。转换也考虑在内。你不必记住所有类型的特征。

Example (using TS concepts)(示例(使用TS概念))

You might be tempted to define a concept Equality like this:

你可能试图像这样定义Equality概念:

template<typename T> concept Equality = has_equal<T> && has_not_equal<T>;

Obviously, it would be better and easier just to use the standard EqualityComparable, but - just as an example - if you had to define such a concept, prefer:

显然,只是使用标准的EqualityComparable会更好,也更容易,但是只是一个例子,如果你必须定义这样的概念,这样更好:

template<typename T> concept Equality = requires(T a, T b) {
   bool == { a == b }
   bool == { a != b }
   // axiom { !(a == b) == (a != b) }
   // axiom { a = b; => a == b }  // => means "implies"
}

as opposed to defining two meaningless concepts has_equal and has_not_equal just as helpers in the definition of Equality. By "meaningless" we mean that we cannot specify the semantics of has_equal in isolation.

而不是只为了辅助定义Equality而定义无意义的has_equal和has_not_equal概念。通过“无意义”这个词,我们想表达的是我们无法独立地定义has_equal的语义。

到此,关于“C++使用模式术语定义方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

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

c++
AI