micro-test-plus 3.2.2
µTest++ Testing Framework
Loading...
Searching...
No Matches
operators.h File Reference

C++ header file with declarations for the µTest++ operators. More...

#include <string_view>
#include "detail.h"

Go to the source code of this file.

Namespaces

namespace  micro_os_plus
 The primary namespace for the µOS++ framework.
namespace  micro_os_plus::micro_test_plus
 Primary namespace for the µTest++ testing framework.
namespace  micro_os_plus::micro_test_plus::operators
 Custom operator overloads for expressive and type-safe test assertions.

Functions

template<class Lhs_T, class Rhs_T, type_traits::requires_t< type_traits::is_op_v< Lhs_T > or type_traits::is_op_v< Rhs_T > > = 0>
constexpr auto micro_os_plus::micro_test_plus::operators::operator and (const Lhs_T &lhs, const Rhs_T &rhs)
 Logical && (and) operator. Matches only if at least one operand is of local type (derived from local op).
template<class T, type_traits::requires_t< type_traits::is_op_v< T > > = 0>
constexpr auto micro_os_plus::micro_test_plus::operators::operator not (const T &t)
 Logical ! (not) operator. Matches only if the operand is of local type (derived from local op).
template<class Lhs_T, class Rhs_T, type_traits::requires_t< type_traits::is_op_v< Lhs_T > or type_traits::is_op_v< Rhs_T > > = 0>
constexpr auto micro_os_plus::micro_test_plus::operators::operator or (const Lhs_T &lhs, const Rhs_T &rhs)
 Logical || (or) operator. Matches only if at least one operand is of local type (derived from local op).
template<class Lhs_T, class Rhs_T, type_traits::requires_t< type_traits::is_op_v< Lhs_T > or type_traits::is_op_v< Rhs_T > > = 0>
constexpr auto micro_os_plus::micro_test_plus::operators::operator!= (const Lhs_T &lhs, const Rhs_T &rhs)
 Non-equality operator for custom types. Matches only if at least one operand is of local type.
constexpr auto micro_os_plus::micro_test_plus::operators::operator!= (std::string_view lhs, std::string_view rhs)
 Non-equality operator for string_view objects.
template<class T, type_traits::requires_t< type_traits::is_container_v< T > > = 0>
constexpr auto micro_os_plus::micro_test_plus::operators::operator!= (T &&lhs, T &&rhs)
 Non-equality operator for containers.
template<class Lhs_T, class Rhs_T, type_traits::requires_t< type_traits::is_op_v< Lhs_T > or type_traits::is_op_v< Rhs_T > > = 0>
constexpr auto micro_os_plus::micro_test_plus::operators::operator< (const Lhs_T &lhs, const Rhs_T &rhs)
 Less than operator. Matches only if at least one operand is of local type (derived from local op).
template<class Lhs_T, class Rhs_T, type_traits::requires_t< type_traits::is_op_v< Lhs_T > or type_traits::is_op_v< Rhs_T > > = 0>
constexpr auto micro_os_plus::micro_test_plus::operators::operator<= (const Lhs_T &lhs, const Rhs_T &rhs)
 Less than or equal operator. Matches only if at least one operand is of local type (derived from local op).
template<class Lhs_T, class Rhs_T, type_traits::requires_t< type_traits::is_op_v< Lhs_T > or type_traits::is_op_v< Rhs_T > > = 0>
constexpr auto micro_os_plus::micro_test_plus::operators::operator== (const Lhs_T &lhs, const Rhs_T &rhs)
 Equality operator for custom types. Matches only if at least one operand is of local type.
constexpr auto micro_os_plus::micro_test_plus::operators::operator== (std::string_view lhs, std::string_view rhs)
 Equality operator for string_view objects.
template<class T, type_traits::requires_t< type_traits::is_container_v< T > > = 0>
constexpr auto micro_os_plus::micro_test_plus::operators::operator== (T &&lhs, T &&rhs)
 Equality operator for containers.
template<class Lhs_T, class Rhs_T, type_traits::requires_t< type_traits::is_op_v< Lhs_T > or type_traits::is_op_v< Rhs_T > > = 0>
constexpr auto micro_os_plus::micro_test_plus::operators::operator> (const Lhs_T &lhs, const Rhs_T &rhs)
 Greater than operator. Matches only if at least one operand is of local type (derived from local op).
template<class Lhs_T, class Rhs_T, type_traits::requires_t< type_traits::is_op_v< Lhs_T > or type_traits::is_op_v< Rhs_T > > = 0>
constexpr auto micro_os_plus::micro_test_plus::operators::operator>= (const Lhs_T &lhs, const Rhs_T &rhs)
 Greater than or equal operator. Matches only if at least one operand is of local type (derived from local op).

Detailed Description

This header provides the declarations for the custom operator overloads used within the µTest++ framework. It defines interfaces for equality, inequality, relational, and logical operators tailored for use with the framework’s strongly-typed constants, wrappers, containers, and string views.

These operator overloads enable expressive, concise, and type-safe test assertions, supporting both compile-time and run-time evaluation. The operators are selectively enabled for types recognised by the framework, minimising the risk of conflicts with user-defined or standard operators.

All definitions reside within the micro_os_plus::micro_test_plus::operators namespace, ensuring clear separation from user code and minimising the risk of naming conflicts.

The header files are organised within the include/micro-os-plus/micro-test-plus folder to maintain a structured and modular codebase.

This file is intended solely for internal use within the framework and should not be included directly by user code.

Definition in file operators.h.