Skip to main content

le_ Struct Template

Less than or equal comparator struct template. More...

Declaration

template <class Lhs_T, class Rhs_T>
struct micro_os_plus::micro_test_plus::detail::le_<Lhs_T, Rhs_T> { ... }

Included Headers

Base struct

structbinary_op_<Lhs_T, Rhs_T>

Common base struct template for binary comparators. More...

Public Constructors Index

template <class Lhs_T, class Rhs_T>
constexprle_ (const Lhs_T &lhs={}, const Rhs_T &rhs={})

Constructs a less than or equal comparator for the given operands. More...

Public Operators Index

template <class Lhs_T, class Rhs_T>
constexproperator bool () const

Conversion operator to boolean. More...

Public Member Functions Index

template <class Lhs_T, class Rhs_T>
constexpr autolhs (void) const

Retrieves the left-hand operand. More...

template <class Lhs_T, class Rhs_T>
constexpr autorhs (void) const

Retrieves the right-hand operand. More...

Private Member Attributes Index

template <class Lhs_T, class Rhs_T>
const Lhs_Tlhs_ {}

Stores the left-hand operand. More...

template <class Lhs_T, class Rhs_T>
const Rhs_Trhs_ {}

Stores the right-hand operand. More...

template <class Lhs_T, class Rhs_T>
const boolvalue_ {}

Stores the result of the comparison. More...

Description

Less than or equal comparator struct template.

Derived from binary_op_, this struct checks whether the left-hand operand is less than or equal to the right-hand operand. It is used within test expressions to provide human-readable relational assertions with enhanced reporting of the actual and expected values upon failure.

Template Parameters
Lhs_T

The type of the left-hand operand.

Rhs_T

The type of the right-hand operand.

Definition at line 477 of file detail.h.

Public Constructors

le_()

template <class Lhs_T, class Rhs_T>
micro_os_plus::micro_test_plus::detail::le_< Lhs_T, Rhs_T >::le_ (const Lhs_T & lhs={}, const Rhs_T & rhs={})
constexpr

Constructs a less than or equal comparator for the given operands.

Parameters
lhs

The left-hand operand.

rhs

The right-hand operand.

Evaluates whether lhs <= rhs inside an immediately invoked lambda and passes the boolean result to the binary_op_ base class constructor. Supports types with static value members and generic types.

Declaration at line 486 of file detail.h, definition at line 457 of file detail-inlines.h.

457 constexpr le_<Lhs_T, Rhs_T>::le_ (const Lhs_T& lhs, const Rhs_T& rhs)
458 : binary_op_<Lhs_T, Rhs_T>{ lhs, rhs, [&]
459 {
460 using std::operator<=;
461
462#if defined(__GNUC__)
463#pragma GCC diagnostic push
464
465#pragma GCC diagnostic ignored "-Wconversion"
466#pragma GCC diagnostic ignored "-Wdouble-promotion"
467#pragma GCC diagnostic ignored "-Wsign-compare"
468#if defined(__clang__)
469#pragma clang diagnostic ignored "-Wimplicit-int-float-conversion"
470#pragma clang diagnostic ignored "-Wpedantic"
471#endif // defined(__clang__)
472#endif // defined(__GNUC__)
473
476 {
477 return Lhs_T::value <= Rhs_T::value;
478 }
479 else
480 {
481 return get (lhs) <= get (rhs);
482 }
483
484#if defined(__GNUC__)
485#pragma GCC diagnostic pop
486#endif // defined(__GNUC__)
487 }() }
488 {
489 }

References micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::binary_op_, micro_os_plus::micro_test_plus::detail::get, micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::lhs and micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::rhs.

Public Operators

operator bool()

template <class Lhs_T, class Rhs_T>
micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::operator bool ()
nodiscard constexpr

Conversion operator to boolean.

Parameters

None.

Returns

The result of the comparison.

Returns the pre-computed boolean result stored by the derived comparator's constructor.

Declaration at line 252 of file detail.h, definition at line 150 of file detail-inlines.h.

150 operator bool () const
151 {
152 return value_;
153 }

References micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::binary_op_ and micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::value_.

Public Member Functions

lhs()

template <class Lhs_T, class Rhs_T>
auto micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::lhs (void)
nodiscard constexpr

Retrieves the left-hand operand.

Parameters

None.

Returns

The extracted left-hand operand.

Returns the value of the left-hand operand, applying the generic getter to ensure correct extraction for both custom and standard types.

Declaration at line 262 of file detail.h, definition at line 163 of file detail-inlines.h.

164 {
165 return get (lhs_);
166 }

References micro_os_plus::micro_test_plus::detail::get and micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::lhs_.

Referenced by micro_os_plus::micro_test_plus::detail::and_< Lhs_T, Rhs_T >::and_, micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::binary_op_, micro_os_plus::micro_test_plus::detail::eq_< Lhs_T, Rhs_T >::eq_, micro_os_plus::micro_test_plus::detail::ge_< Lhs_T, Rhs_T >::ge_, micro_os_plus::micro_test_plus::detail::gt_< Lhs_T, Rhs_T >::gt_, micro_os_plus::micro_test_plus::detail::le_< Lhs_T, Rhs_T >::le_, micro_os_plus::micro_test_plus::detail::lt_< Lhs_T, Rhs_T >::lt_, micro_os_plus::micro_test_plus::detail::ne_< Lhs_T, Rhs_T >::ne_, micro_os_plus::micro_test_plus::detail::or_< Lhs_T, Rhs_T >::or_, micro_os_plus::micro_test_plus::detail::expression_formatter::operator<<, micro_os_plus::micro_test_plus::detail::expression_formatter::operator<<, micro_os_plus::micro_test_plus::detail::expression_formatter::operator<<, micro_os_plus::micro_test_plus::detail::expression_formatter::operator<<, micro_os_plus::micro_test_plus::detail::expression_formatter::operator<<, micro_os_plus::micro_test_plus::detail::expression_formatter::operator<<, micro_os_plus::micro_test_plus::detail::expression_formatter::operator<< and micro_os_plus::micro_test_plus::detail::expression_formatter::operator<<.

rhs()

template <class Lhs_T, class Rhs_T>
auto micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::rhs (void)
nodiscard constexpr

Retrieves the right-hand operand.

Parameters

None.

Returns

The extracted right-hand operand.

Returns the value of the right-hand operand, applying the generic getter to ensure correct extraction for both custom and standard types.

Declaration at line 272 of file detail.h, definition at line 176 of file detail-inlines.h.

177 {
178 return get (rhs_);
179 }

References micro_os_plus::micro_test_plus::detail::get and micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::rhs_.

Referenced by micro_os_plus::micro_test_plus::detail::and_< Lhs_T, Rhs_T >::and_, micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::binary_op_, micro_os_plus::micro_test_plus::detail::eq_< Lhs_T, Rhs_T >::eq_, micro_os_plus::micro_test_plus::detail::ge_< Lhs_T, Rhs_T >::ge_, micro_os_plus::micro_test_plus::detail::gt_< Lhs_T, Rhs_T >::gt_, micro_os_plus::micro_test_plus::detail::le_< Lhs_T, Rhs_T >::le_, micro_os_plus::micro_test_plus::detail::lt_< Lhs_T, Rhs_T >::lt_, micro_os_plus::micro_test_plus::detail::ne_< Lhs_T, Rhs_T >::ne_, micro_os_plus::micro_test_plus::detail::or_< Lhs_T, Rhs_T >::or_, micro_os_plus::micro_test_plus::detail::expression_formatter::operator<<, micro_os_plus::micro_test_plus::detail::expression_formatter::operator<<, micro_os_plus::micro_test_plus::detail::expression_formatter::operator<<, micro_os_plus::micro_test_plus::detail::expression_formatter::operator<<, micro_os_plus::micro_test_plus::detail::expression_formatter::operator<<, micro_os_plus::micro_test_plus::detail::expression_formatter::operator<<, micro_os_plus::micro_test_plus::detail::expression_formatter::operator<< and micro_os_plus::micro_test_plus::detail::expression_formatter::operator<<.

Private Member Attributes

lhs_

template <class Lhs_T, class Rhs_T>
const Lhs_T micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::lhs_ {}

Stores the left-hand operand.

info

Operands are stored by value; passing a large container will copy it into this member.

Definition at line 281 of file detail.h.

281 const Lhs_T lhs_{};

Referenced by micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::binary_op_ and micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::lhs.

rhs_

template <class Lhs_T, class Rhs_T>
const Rhs_T micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::rhs_ {}

Stores the right-hand operand.

info

Operands are stored by value; passing a large container will copy it into this member.

Definition at line 289 of file detail.h.

289 const Rhs_T rhs_{};

Referenced by micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::binary_op_ and micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::rhs.

value_

template <class Lhs_T, class Rhs_T>
const bool micro_os_plus::micro_test_plus::detail::binary_op_< Lhs_T, Rhs_T >::value_ {}

The documentation for this struct was generated from the following files:


Generated via doxygen2docusaurus 2.2.2 by Doxygen 1.17.0.