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

Deprecated generic strongly-typed wrapper for explicit type conversion. More...

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

Inheritance diagram for micro_os_plus::micro_test_plus::to_t< T >:

Public Types

using op_type = op
 Marker identifying the framework expression types.
using value_type = T
 The type of the stored value.

Public Member Functions

constexpr to_t (const T &t)
 Constructor for the strongly-typed wrapper.
constexpr const T & get (void) const noexcept
 Getter for the stored value.
constexpr operator T () const noexcept
 Explicit conversion operator to the underlying value type.

Public Attributes

T epsilon = T{}
 The epsilon value used for floating-point comparisons.

Private Attributes

T value_ {}
 The stored value.

Detailed Description

template<class T>
struct micro_os_plus::micro_test_plus::to_t< T >
Since
3.2.0

The to_t template provides a public, strongly-typed wrapper for any type T, enabling explicit conversion of dynamic values and expressions to a type recognised by the µTest++ comparators and reporting mechanisms.

This wrapper inherits from detail::value<T>, ensuring that the encapsulated value is treated as the specified type within the framework, for the types without a to_* alias, including the application types; with the operators of the operators namespace, the comparisons are then reported with their operands.

Example
MyType obj;
// Explicitly treat obj as MyType for test comparison.
auto wrapped = mt::to_t<MyType>{obj};
Primary namespace for the µTest++ testing framework.
Replacement
Pass the plain value to the function comparators eq(), ne(), gt(), ge(), lt(), and le() instead; the application types are reported with the operator<< of expression_formatter.
Deprecated
pass plain values to eq() and the other comparators (since 6.0.0)

Definition at line 1871 of file deprecated.h.

Member Typedef Documentation

◆ op_type

template<class T>
using micro_os_plus::micro_test_plus::detail::value_base< T >::op_type = op
inherited

Declared directly rather than inherited from op, to avoid the empty base; detected by the extension::is_op concept.

Definition at line 360 of file deprecated.h.

◆ value_type

template<class T>
using micro_os_plus::micro_test_plus::detail::value_base< T >::value_type = T
inherited

Exposed for use by generic code that inspects wrapper types.

Definition at line 368 of file deprecated.h.

Constructor & Destructor Documentation

◆ to_t()

template<class T>
micro_os_plus::micro_test_plus::to_t< T >::to_t ( const T & t)
explicitconstexpr
Parameters
tThe value to be wrapped and explicitly converted.

Constructs a to_t instance by forwarding the provided value to the base detail::value<T> wrapper.

Definition at line 1260 of file deprecated-inlines.h.

1260 : detail::value<T>{ t }
1261 {
1262 }
Deprecated generic strongly-typed wrapper for explicit type conversion.

References micro_os_plus::micro_test_plus::detail::value< T >::value().

Member Function Documentation

◆ get()

template<class T>
const T & micro_os_plus::micro_test_plus::detail::value_base< T >::get ( void ) const
nodiscardconstexprnoexceptinherited

Returns a reference, so that a wrapped object (for example a to_t<std::string>) is not copied each time it is compared or formatted.

Parameters
None.
Returns
A reference to the stored value.

Returns a const reference to the stored value, valid as long as the wrapper.

Definition at line 504 of file deprecated-inlines.h.

505 {
506 return value_;
507 }

References value_.

◆ operator T()

template<class T>
micro_os_plus::micro_test_plus::detail::value_base< T >::operator T ( ) const
explicitnodiscardconstexprnoexceptinherited
Returns
The stored value as type T.

Allows explicit conversion to the encapsulated value.

Definition at line 491 of file deprecated-inlines.h.

493 {
494 return value_;
495 }

References value_base(), and value_.

Member Data Documentation

◆ epsilon

template<class T>
T micro_os_plus::micro_test_plus::detail::value< T >::epsilon = T{}
inherited

This instance member defines the precision for comparisons. It is set via the constructor, either explicitly or computed as a default based on the number of decimal digits in the value. Each instance carries its own epsilon, so two value<T> objects with different precisions do not interfere with each other.

Definition at line 674 of file deprecated.h.

◆ value_

template<class T>
T micro_os_plus::micro_test_plus::detail::value_base< T >::value_ {}
privateinherited

Set by the constructor. Derived wrappers and comparators access it via get() or the explicit conversion operator.

Definition at line 408 of file deprecated.h.

Referenced by value_base(), get(), and operator T().


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