C++ concepts: Compare

The concept Compare is a set of requirements expected by some of the standard library facilities from the user-provided function object types.

The return value of the function call operation applied to an object of type Compare, when contextually converted to bool, yields true if the first argument of the call appears before the second in the strict weak ordering relationinduced by this Compare type, and false otherwise.

As with any BinaryPredicate, evaluation of that expression is not allowed to call non-const member functions of the dereferenced iterators.

Requirements

The type T satisfies Compare if

Given

  • comp, an object of type Compare
  • equiv(a, b), an expression equivalent to !comp(a, b) && !comp(b, a)

The following expressions must be valid and have their specified effects

Expression Return type Requirements
comp(a, b)implicitly convertible to boolEstablishes strict weak ordering relation with the following properties
  • For all acomp(a,a)==false
  • If comp(a,b)==true then comp(b,a)==false
  • if comp(a,b)==true and comp(b,c)==true then comp(a,c)==true
equiv(a, b)boolEstablishes equivalence relationship with the following properties
  • For all aequiv(a,a)==true.
  • If equiv(a,b)==true, then equiv(b,a)==true
  • If equiv(a,b)==true and equiv(b,c)==true, then equiv(a,c)==true

Note: comp induces a strict total ordering on the equivalence classes determined by equiv


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值