Skip to main content

exceptions-inline.h File

C++ header file with inline implementations for the µTest++ exceptions comparators. More...

Namespaces Index

namespacemicro_os_plus

The primary namespace for the µOS++ framework. More...

namespacemicro_test_plus

Primary namespace for the µTest++ testing framework. More...

Functions Index

template <class Callable_T>
constexpr autonothrow (const Callable_T &func)

Check if a callable does not throw an exception. More...

template <class Callable_T>
constexpr autothrows (const Callable_T &func)

Check if a callable throws an exception (any exception). More...

template <class Exception_T, class Callable_T>
constexpr autothrows (const Callable_T &func)

Check if a callable throws a specific exception. More...

Description

C++ header file with inline implementations for the µTest++ exceptions comparators.

This header provides the inline implementations for the exception comparator templates used within the µTest++ framework.

...

All definitions reside within the micro_os_plus::micro_test_plus 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.

File Listing

The file content with the documentation metadata removed is:

1/*
2 * This file is part of the µOS++ project (https://micro-os-plus.github.io/).
3 * Copyright (c) 2021-2026 Liviu Ionescu. All rights reserved.
4 *
5 * Permission to use, copy, modify, and/or distribute this software for any
6 * purpose is hereby granted, under the terms of the MIT license.
7 *
8 * If a copy of the license was not distributed with this file, it can be
9 * obtained from https://opensource.org/licenses/mit.
10 *
11 * Major parts of the code are inspired from v1.1.8 of the Boost UT project,
12 * released under the terms of the Boost Version 1 Software License,
13 * which can be obtained from https://www.boost.org/LICENSE_1_0.txt.
14 */
15
16// ----------------------------------------------------------------------------
17
40
41#ifndef MICRO_OS_PLUS_MICRO_TEST_PLUS_INLINES_EXCEPTIONS_INLINES_H_
42#define MICRO_OS_PLUS_MICRO_TEST_PLUS_INLINES_EXCEPTIONS_INLINES_H_
43
44// ----------------------------------------------------------------------------
45
46#if defined(__cplusplus)
47
48// ----------------------------------------------------------------------------
49
50#if defined(__GNUC__)
51#pragma GCC diagnostic push
52
53#pragma GCC diagnostic ignored "-Waggregate-return"
54#if defined(__clang__)
55#pragma clang diagnostic ignored "-Wc++98-compat"
56#pragma clang diagnostic ignored "-Wc++98-compat-pedantic"
57#endif // defined(__clang__)
58#endif // defined(__GNUC__)
59
60// ============================================================================
61
63{
64 // --------------------------------------------------------------------------
65 // Exceptions related comparators.
66
67#if defined(__cpp_exceptions)
68
79 template <class Exception_T, class Callable_T>
80 constexpr auto
81 throws (const Callable_T& func)
82 {
84 }
85
96 template <class Callable_T>
97 constexpr auto
98 throws (const Callable_T& func)
99 {
100 return detail::throws_<Callable_T>{ func };
101 }
102
114 template <class Callable_T>
115 constexpr auto
116 nothrow (const Callable_T& func)
117 {
118 return detail::nothrow_<Callable_T>{ func };
119 }
120
121#endif // defined(__cpp_exceptions)
122
123 // --------------------------------------------------------------------------
124} // namespace micro_os_plus::micro_test_plus
125
126#if defined(__GNUC__)
127#pragma GCC diagnostic pop
128#endif // defined(__GNUC__)
129
130// ----------------------------------------------------------------------------
131
132#endif // defined(__cplusplus)
133
134// ----------------------------------------------------------------------------
135
136#endif // MICRO_OS_PLUS_MICRO_TEST_PLUS_INLINES_EXCEPTIONS_INLINES_H_
137
138// ----------------------------------------------------------------------------

Generated via doxygen2docusaurus 2.2.2 by Doxygen 1.17.0.