|
micro-test-plus 6.0.0
µTest++ Testing Framework
|
Common base struct template for binary comparators. More...
#include "micro-os-plus/micro-test-plus.h"
Public Types | |
| using | op_type = op |
| Marker identifying the framework expression types. | |
Public Member Functions | |
| template<class L, class R> | |
| constexpr | binary_op (L &&lhs, R &&rhs, bool value) |
| Constructs a binary comparator with the given operands and pre-computed result. | |
| constexpr decltype(auto) | lhs (void) const |
| Retrieves the left-hand operand. | |
| constexpr | operator bool () const |
| Conversion operator to boolean. | |
| constexpr decltype(auto) | rhs (void) const |
| Retrieves the right-hand operand. | |
Private Attributes | |
| Lhs_T | lhs_ |
| Stores the left-hand operand. | |
| Rhs_T | rhs_ |
| Stores the right-hand operand. | |
| const bool | value_ {} |
| Stores the result of the comparison. | |
This base struct stores two operands (left-hand and right-hand) along with the pre-computed boolean result of a binary comparison. Derived structs such as compare_op, and_op, and or_op inherit from this to provide relational and logical operations. The comparison result is computed at construction time and stored, so that the reporters and the logical operations read it without evaluating the operands again.
| Lhs_T | The type of the stored left-hand operand, either the operand type, or a const reference to it (see stored_operand_t). |
| Rhs_T | The type of the stored right-hand operand, either the operand type, or a const reference to it. |
|
inherited |
Detected by the extension::is_op concept, and inherited by all types derived from op.
Definition at line 128 of file extension.h.
|
constexpr |
The operands are forwarded to the members, so that the rvalues are moved, not copied.
| L | The type of the left-hand operand argument. |
| R | The type of the right-hand operand argument. |
| lhs | The left-hand operand. |
| rhs | The right-hand operand. |
| value | The pre-computed boolean result of the comparison. |
Stores the two operands and the pre-computed boolean result of the comparison in the corresponding private members.
Definition at line 155 of file detail-inlines.h.
References lhs(), lhs_, rhs(), rhs_, and value_.
Referenced by micro_os_plus::micro_test_plus::detail::and_op< Lhs_T, Rhs_T >::and_op(), micro_os_plus::micro_test_plus::detail::approx_op< Lhs_T, Rhs_T, Epsilon_T >::approx_op(), micro_os_plus::micro_test_plus::detail::compare_op< Lhs_T, Rhs_T, Compare_T >::compare_op(), micro_os_plus::micro_test_plus::detail::or_op< Lhs_T, Rhs_T >::or_op(), and operator bool().
|
nodiscardconstexpr |
The operand is unwrapped with detail::unwrap() and returned by reference, so that formatting it does not copy it.
Returns the value of the left-hand operand, unwrapped by detail::unwrap() if it is a framework wrapper type; the stored operand is not copied.
Definition at line 181 of file detail-inlines.h.
References lhs(), lhs_, and micro_os_plus::micro_test_plus::detail::unwrap().
Referenced by micro_os_plus::micro_test_plus::detail::and_op< Lhs_T, Rhs_T >::and_op(), micro_os_plus::micro_test_plus::detail::approx_op< Lhs_T, Rhs_T, Epsilon_T >::approx_op(), binary_op(), micro_os_plus::micro_test_plus::detail::compare_op< Lhs_T, Rhs_T, Compare_T >::compare_op(), micro_os_plus::micro_test_plus::detail::or_op< Lhs_T, Rhs_T >::or_op(), and lhs().
|
nodiscardconstexpr |
Returns the pre-computed boolean result stored by the derived comparator's constructor.
Definition at line 167 of file detail-inlines.h.
References binary_op(), and value_.
|
nodiscardconstexpr |
The operand is unwrapped with detail::unwrap() and returned by reference, so that formatting it does not copy it.
Returns the value of the right-hand operand, unwrapped by detail::unwrap() if it is a framework wrapper type; the stored operand is not copied.
Definition at line 194 of file detail-inlines.h.
References rhs(), rhs_, and micro_os_plus::micro_test_plus::detail::unwrap().
Referenced by micro_os_plus::micro_test_plus::detail::and_op< Lhs_T, Rhs_T >::and_op(), micro_os_plus::micro_test_plus::detail::approx_op< Lhs_T, Rhs_T, Epsilon_T >::approx_op(), binary_op(), micro_os_plus::micro_test_plus::detail::compare_op< Lhs_T, Rhs_T, Compare_T >::compare_op(), micro_os_plus::micro_test_plus::detail::or_op< Lhs_T, Rhs_T >::or_op(), and rhs().
|
private |
A value, moved from a temporary or copied from a named operand, or, for a named operand that cannot be copied, a const reference to it (see stored_operand_t). It is not const, so that a temporary expression can be moved into an enclosing one.
Definition at line 410 of file detail.h.
Referenced by binary_op(), and lhs().
|
private |
Stored as the left-hand operand is.
Definition at line 418 of file detail.h.
Referenced by binary_op(), and rhs().
|
private |
Computed once, by the derived comparator constructor.
Definition at line 426 of file detail.h.
Referenced by binary_op(), and operator bool().