micro-test-plus 6.0.0
µTest++ Testing Framework
Loading...
Searching...
No Matches
micro_os_plus::micro_test_plus::detail::unary_op< T > Struct Template Reference

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

#include "micro-os-plus/micro-test-plus.h"

Inheritance diagram for micro_os_plus::micro_test_plus::detail::unary_op< T >:

Public Types

using op_type = op
 Marker identifying the framework expression types.

Public Member Functions

template<class U>
constexpr unary_op (U &&t, bool value)
 Constructs a unary comparator with the given operand and pre-computed result.
constexpr decltype(auto) operand (void) const
 Retrieves the wrapped operand expression.
constexpr operator bool () const
 Conversion operator to boolean.

Private Attributes

T t_
 Stores the operand.
const bool value_ {}
 Stores the result of the operation.

Detailed Description

template<class T>
struct micro_os_plus::micro_test_plus::detail::unary_op< T >

This base struct stores a single operand and the pre-computed boolean result of a unary operation. Derived structs such as not_op inherit from this to provide logical negation. The result is computed at construction time, enabling consistent handling and reporting of operations throughout the framework.

Template Parameters
TThe type of the stored operand, either the operand type, or a const reference to it (see stored_operand_t).

Definition at line 257 of file detail.h.

Member Typedef Documentation

◆ op_type

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

Definition at line 128 of file extension.h.

Constructor & Destructor Documentation

◆ unary_op()

template<class T>
template<class U>
micro_os_plus::micro_test_plus::detail::unary_op< T >::unary_op ( U && t,
bool value )
constexpr

The operand is forwarded to the member, so that an rvalue is moved, not copied.

Template Parameters
UThe type of the operand argument.
Parameters
tThe operand.
valueThe pre-computed boolean result of the operation.

Stores the operand and the pre-computed boolean result of the operation in the corresponding private members.

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

118 : t_{ std::forward<U> (t) }, value_{ value }
119 {
120 }
Common base struct template for unary comparators.
Definition detail.h:258
const bool value_
Stores the result of the operation.
Definition detail.h:317

References t_, and value_.

Referenced by micro_os_plus::micro_test_plus::detail::not_op< T >::not_op(), micro_os_plus::micro_test_plus::detail::predicate_op< T, Predicate_T >::predicate_op(), and operator bool().

Member Function Documentation

◆ operand()

template<class T>
decltype(auto) constexpr micro_os_plus::micro_test_plus::detail::unary_op< T >::operand ( void ) const
nodiscardconstexpr

The operand is unwrapped with detail::unwrap() and returned by reference, so that formatting it does not copy it.

Parameters
None.
Returns
The extracted operand value.

Returns the operand, unwrapped by detail::unwrap() if it is a framework wrapper type; the stored operand is not copied.

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

142 {
143 return detail::unwrap (t_);
144 }
decltype(auto) constexpr unwrap(const T &t)
Returns the value wrapped by a framework type, or the operand itself.

References operand(), t_, and micro_os_plus::micro_test_plus::detail::unwrap().

Referenced by operand().

◆ operator bool()

template<class T>
micro_os_plus::micro_test_plus::detail::unary_op< T >::operator bool ( ) const
nodiscardconstexpr
Parameters
None.
Returns
The result of the operation.

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

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

130 {
131 return value_;
132 }

References unary_op(), and value_.

Member Data Documentation

◆ t_

template<class T>
T micro_os_plus::micro_test_plus::detail::unary_op< T >::t_
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 309 of file detail.h.

Referenced by unary_op(), and operand().

◆ value_

template<class T>
const bool micro_os_plus::micro_test_plus::detail::unary_op< T >::value_ {}
private

Computed once, by the derived comparator constructor.

Definition at line 317 of file detail.h.

Referenced by unary_op(), and operator bool().


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