Skip to main content

The and_ Struct Template Reference

Logical AND comparator struct template. More...

Declaration

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

Included Headers

Base struct

structop

Empty base struct for all operator types. More...

Public Constructors Index

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

Constructs a logical AND 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...

Public 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 logical AND operation. More...

Description

Logical AND comparator struct template.

Template Parameters
Lhs_T

The type of the left-hand operand.

Rhs_T

The type of the right-hand operand.

The and_ struct template provides a type-safe mechanism for evaluating the logical conjunction (AND) of two operands within the framework.

This comparator supports a wide range of operand types, applying the generic getter to ensure correct value extraction for both custom and standard types. The result of the logical AND operation is stored in the value_ member for efficient access.

The implementation is optimised for use in embedded environments and supports both compile-time and run-time evaluation.

All definitions are intended for internal use within the framework and are implemented in the include/micro-os-plus/micro-test-plus folder to maintain a structured and modular codebase.

Definition at line 1177 of file detail.h.

Public Constructors

and_()

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

Constructs a logical AND comparator for the given operands.

Parameters
lhs

The left-hand operand.

rhs

The right-hand operand.

Evaluates the logical conjunction of the provided operands at construction, supporting both custom and standard types. The result is stored in the value_ member for efficient access.

Definition at line 1190 of file detail.h.

1190 constexpr and_ (const Lhs_T& lhs = {}, const Rhs_T& rhs = {})
1191 : lhs_{ lhs }, rhs_{ rhs },
1192 value_{ static_cast<bool> (lhs) and static_cast<bool> (rhs) }
1193 {
1194 }

Reference micro_os_plus::micro_test_plus::detail::and_< Lhs_T, Rhs_T >::lhs.

Public Operators

operator bool()

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

Conversion operator to boolean.

Parameters

None.

Return Values
true

Both operands evaluate to true.

false

At least one operand evaluates to false.

Returns the result of the logical AND operation.

Definition at line 1208 of file detail.h.

1208 operator bool () const
1209 {
1210 return value_;
1211 }

Reference micro_os_plus::micro_test_plus::detail::and_< Lhs_T, Rhs_T >::value_.

Public Member Functions

lhs()

template <class Lhs_T, class Rhs_T>
auto micro_os_plus::micro_test_plus::detail::and_< Lhs_T, Rhs_T >::lhs (void)
inline 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.

Definition at line 1226 of file detail.h.

1226 lhs (void) const
1227 {
1228 return get (lhs_);
1229 }

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

Referenced by micro_os_plus::micro_test_plus::detail::and_< Lhs_T, Rhs_T >::and_ and micro_os_plus::micro_test_plus::test_reporter::operator<<.

rhs()

template <class Lhs_T, class Rhs_T>
auto micro_os_plus::micro_test_plus::detail::and_< Lhs_T, Rhs_T >::rhs (void)
inline 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.

Definition at line 1244 of file detail.h.

1244 rhs (void) const
1245 {
1246 return get (rhs_);
1247 }

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

Referenced by micro_os_plus::micro_test_plus::test_reporter::operator<<.

Public Member Attributes

lhs_

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

Stores the left-hand operand.

Definition at line 1252 of file detail.h.

1252 const Lhs_T lhs_{};

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

rhs_

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

Stores the right-hand operand.

Definition at line 1257 of file detail.h.

1257 const Rhs_T rhs_{};

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

value_

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

Stores the result of the logical AND operation.

Definition at line 1262 of file detail.h.

1262 const bool value_{};

Referenced by micro_os_plus::micro_test_plus::detail::and_< Lhs_T, Rhs_T >::operator bool.


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


Generated via doxygen2docusaurus by Doxygen 1.14.0.