Skip to main content

or_op Struct Template

Logical OR comparator struct template. More...

Declaration​

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

Included Headers​

Base struct​

structbinary_op<Lhs_T, Rhs_T>

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

Public Member Typedefs Index​

template <class Lhs_T, class Rhs_T>
usingop_type = op

Marker identifying the framework expression types. More...

Public Constructors Index​

template <class L, class R>
constexpror_op (L &&lhs, R &&rhs)

Constructs a logical OR 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 auto lhs (void) const -> decltype(auto)

Retrieves the left-hand operand. More...

template <class Lhs_T, class Rhs_T>
constexpr auto rhs (void) const -> decltype(auto)

Retrieves the right-hand operand. More...

Private Member Attributes Index​

template <class Lhs_T, class Rhs_T>
Lhs_Tlhs_

Stores the left-hand operand. More...

template <class Lhs_T, class Rhs_T>
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​

Logical OR comparator struct template.

Derived from binary_op, this struct combines two sub-expressions with a logical OR operation. It enables composition of complex checks by combining multiple conditions into a single logical whole, with reporting that shows the combined result and individual operand outcomes.

The temporaries are moved into the comparator, and the named sub-expressions are copied (see stored_operand_t).

Template Parameters
Lhs_T

The type of the stored left-hand sub-expression, either its type, or a const reference to it.

Rhs_T

The type of the stored right-hand sub-expression, either its type, or a const reference to it.

Definition at line 1137 of file detail.h.

Public Member Typedefs​

op_type​

template <class Lhs_T, class Rhs_T>
using micro_os_plus::micro_test_plus::detail::op::op_type = op

Marker identifying the framework expression types.

Detected by the extension::is_op concept, and inherited by all types derived from op.

Definition at line 128 of file extension.h.

128 using op_type = op;

Public Constructors​

or_op()​

template <class L, class R>
micro_os_plus::micro_test_plus::detail::or_op< Lhs_T, Rhs_T >::or_op (L && lhs, R && rhs)
constexpr

Constructs a logical OR comparator for the given operands.

The result is computed from the arguments, before they are forwarded to the base.

Template Parameters
L

The type of the left-hand operand argument.

R

The type of the right-hand operand argument.

Parameters
lhs

The left-hand operand.

rhs

The right-hand operand.

Evaluates the logical disjunction static_cast<bool>(lhs) or static_cast<bool>(rhs) and passes the result to the binary_op base class constructor.

Declaration at line 1153 of file detail.h, definition at line 1059 of file detail-inlines.h.

1059 template <class L, class R>
1060 constexpr or_op<Lhs_T, Rhs_T>::or_op (L&& lhs, R&& rhs)
1061 : binary_op<Lhs_T, Rhs_T>{ std::forward<L> (lhs),
1062 std::forward<R> (rhs),
1063 static_cast<bool> (lhs)
1064 or static_cast<bool> (rhs) }
1065 {

References micro_os_plus::micro_test_plus::detail::binary_op< Lhs_T, Rhs_T >::binary_op, 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 370 of file detail.h, definition at line 168 of file detail-inlines.h.

168 operator bool () const
169 {
170 return value_;
171 }

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>
decltype(auto) constexpr micro_os_plus::micro_test_plus::detail::binary_op< Lhs_T, Rhs_T >::lhs (void)
nodiscard constexpr

rhs()​

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

Private Member Attributes​

lhs_​

template <class Lhs_T, class Rhs_T>
Lhs_T micro_os_plus::micro_test_plus::detail::binary_op< Lhs_T, Rhs_T >::lhs_

Stores the left-hand operand.

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.

410 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>
Rhs_T micro_os_plus::micro_test_plus::detail::binary_op< Lhs_T, Rhs_T >::rhs_

Stores the right-hand operand.

Stored as the left-hand operand is.

Definition at line 418 of file detail.h.

418 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_ {}

Stores the result of the comparison.

Computed once, by the derived comparator constructor.

Definition at line 426 of file detail.h.

426 const bool value_{};

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 >::operator bool.


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


Generated via doxygen2docusaurus 2.2.8 by Doxygen 1.18.0.