Skip to main content

comparable Concept

Concept satisfied when two operands can be compared by the comparator selected by Op. More...

Definition​

template <comparison Op, class Lhs_T, class Rhs_T>
concept micro_os_plus::micro_test_plus::detail::comparable = comparison_lookup::can_compare<Op, comparison_operand_t<Lhs_T>,
                                         comparison_operand_t<Rhs_T>>
          or sign_mixed_integers<comparison_operand_t<Lhs_T>,
                                 comparison_operand_t<Rhs_T>>
          or function_pointer_pair<comparison_operand_t<Lhs_T>,
                                   comparison_operand_t<Rhs_T>>

Description​

Concept satisfied when two operands can be compared by the comparator selected by Op.

The comparison is the one made by the apply() function of the comparison tag: by value for the integers of different signedness (see sign_mixed_integers), otherwise with the operator of the language. A function pointer compared with an object pointer is also accepted (see function_pointer_pair). Used to reject the call of eq() and of the other comparators at the call site, with a short diagnostic; the operator check is the first alternative, so that the Clang diagnostic names the invalid operator and the two types first (GCC reports only that no alternative is satisfied).

Template Parameters
Op

The comparison.

Lhs_T

The type deduced for the left hand side operand.

Rhs_T

The type deduced for the right hand side operand.

Definition at line 507 of file detail-inlines.h.

  template<comparison Op, class Lhs_T, class Rhs_T>
  concept comparable = comparison_lookup::can_compare<Op, comparison_operand_t<Lhs_T>,
  comparison_operand_t<Rhs_T>>
  or sign_mixed_integers<comparison_operand_t<Lhs_T>,
  comparison_operand_t<Rhs_T>>
  or function_pointer_pair<comparison_operand_t<Lhs_T>,
  comparison_operand_t<Rhs_T>>

Generated via doxygen2docusaurus 2.2.8 by Doxygen 1.18.0.