BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bsls_assert_macroreset.h
Go to the documentation of this file.
1/// @file bsls_assert_macroreset.h
2///
3/// The content of this file has been pre-processed for Doxygen.
4///
5
6
7// bsls_assert_macroreset.h -*-C++-*-
8#ifndef INCLUDED_BSLS_ASSERT_MACRORESET
9#define INCLUDED_BSLS_ASSERT_MACRORESET
10
11#include <bsls_ident.h>
12BSLS_IDENT("$Id: $")
13
14/// @defgroup bsls_assert_macroreset bsls_assert_macroreset
15/// @brief Undefine all macros from `bsls_assert.h` and `bsls_review.h`.
16/// @addtogroup bsl
17/// @{
18/// @addtogroup bsls
19/// @{
20/// @addtogroup bsls_assert_macroreset
21/// @{
22///
23/// <h1> Outline </h1>
24/// * <a href="#bsls_assert_macroreset-purpose"> Purpose</a>
25/// * <a href="#bsls_assert_macroreset-description"> Description </a>
26/// * <a href="#bsls_assert_macroreset-usage"> Usage </a>
27///
28/// # Purpose {#bsls_assert_macroreset-purpose}
29/// Undefine all macros from `bsls_assert.h` and `bsls_review.h`.
30///
31/// # Description {#bsls_assert_macroreset-description}
32/// This component provides a header that is *included* to undefine
33/// all macros defined in `bsls_assert.h` and `bsls_review.h`; it is designed to
34/// be *re*-includable. This is for the use of the @ref bsls_assert test driver to
35/// enable it to re-include the `bsls_assert.h` header with different input
36/// macros and verify that they output the correct resulting macro definitions.
37///
38/// ## Usage {#bsls_assert_macroreset-usage}
39///
40///
41/// To undefine all macros defined in `bsls_assert.h` and `bsls_review.h`, first
42/// disable the header include guard for this header
43/// (`bsls_assert_macroreset.h`):
44/// @code
45/// #undef INCLUDED_BSLS_ASSERT_MACRORESET
46/// @endcode
47/// Then re-include this header, which will undefine the macros that were
48/// defined by `bsls_assert.h` and `bsls_review.h`:
49/// @code
50/// #include <bsls_assert_macroreset.h>
51/// @endcode
52/// Then define any macros that control the behaviors of `bsls_assert.h` and
53/// `bsls_review.h` for this particular test, then re-include `bsls_assert.h`:
54/// @code
55/// #include <bsls_assert.h>
56/// @endcode
57/// @}
58/** @} */
59/** @} */
60
61/** @addtogroup bsl
62 * @{
63 */
64/** @addtogroup bsls
65 * @{
66 */
67/** @addtogroup bsls_assert_macroreset
68 * @{
69 */
70
71// Undefine the external header guards so that the component headers can be
72// re-included and re-evaluated.
73#undef INCLUDED_BSLS_REVIEW
74#undef INCLUDED_BSLS_ASSERT
75
76// Undefine the build mode so it can be set to whatever the test wants to
77// verify next.
78#undef BDE_BUILD_TARGET_DBG
79#undef BDE_BUILD_TARGET_OPT
80#undef BDE_BUILD_TARGET_SAFE
81#undef BDE_BUILD_TARGET_SAFE_2
82
83// Undefine the explicit review level and assert level macros.
84#undef BSLS_REVIEW_LEVEL_NONE
85#undef BSLS_REVIEW_LEVEL_REVIEW
86#undef BSLS_REVIEW_LEVEL_REVIEW_OPT
87#undef BSLS_REVIEW_LEVEL_REVIEW_SAFE
88
89#undef BSLS_ASSERT_LEVEL_ASSERT
90#undef BSLS_ASSERT_LEVEL_ASSERT_OPT
91#undef BSLS_ASSERT_LEVEL_ASSERT_SAFE
92#undef BSLS_ASSERT_LEVEL_ASSUME_ASSERT
93#undef BSLS_ASSERT_LEVEL_ASSUME_OPT
94#undef BSLS_ASSERT_LEVEL_ASSUME_SAFE
95#undef BSLS_ASSERT_LEVEL_NONE
96
97// Undefine other control macros
98#undef BSLS_REVIEW_VALIDATE_DISABLED_MACROS
99#undef BSLS_ASSERT_VALIDATE_DISABLED_MACROS
100
101// Undefine the macros actually defined by 'bsls_review.h'.
102#undef BSLS_REVIEW
103#undef BSLS_REVIEW_REVIEW_IMP
104#undef BSLS_REVIEW_REVIEW_COUNT_IMP
105#undef BSLS_REVIEW_DISABLED_IMP
106#undef BSLS_REVIEW_INVOKE
107#undef BSLS_REVIEW_IS_ACTIVE
108#undef BSLS_REVIEW_IS_USED
109#undef BSLS_REVIEW_OPT
110#undef BSLS_REVIEW_OPT_IS_ACTIVE
111#undef BSLS_REVIEW_OPT_IS_USED
112#undef BSLS_REVIEW_SAFE
113#undef BSLS_REVIEW_SAFE_IS_ACTIVE
114#undef BSLS_REVIEW_SAFE_IS_USED
115
116// Undefine the macros actually defined by 'bsls_assert.h'.
117#undef BSLS_ASSERT
118#undef BSLS_ASSERT_ASSERT
119#undef BSLS_ASSERT_ASSUME_IMP
120#undef BSLS_ASSERT_ASSERT_IMP
121#undef BSLS_ASSERT_DISABLED_IMP
122#undef BSLS_ASSERT_INVOKE
123#undef BSLS_ASSERT_INVOKE_NORETURN
124#undef BSLS_ASSERT_IS_ACTIVE
125#undef BSLS_ASSERT_IS_ASSUMED
126#undef BSLS_ASSERT_IS_REVIEW
127#undef BSLS_ASSERT_IS_USED
128#undef BSLS_ASSERT_OPT
129#undef BSLS_ASSERT_OPT_IS_ACTIVE
130#undef BSLS_ASSERT_OPT_IS_ASSUMED
131#undef BSLS_ASSERT_OPT_IS_REVIEW
132#undef BSLS_ASSERT_OPT_IS_USED
133#undef BSLS_ASSERT_SAFE
134#undef BSLS_ASSERT_SAFE_IS_ACTIVE
135#undef BSLS_ASSERT_SAFE_IS_ASSUMED
136#undef BSLS_ASSERT_SAFE_IS_REVIEW
137#undef BSLS_ASSERT_SAFE_IS_USED
138
139#endif
140
141// ----------------------------------------------------------------------------
142// Copyright 2018 Bloomberg Finance L.P.
143//
144// Licensed under the Apache License, Version 2.0 (the "License");
145// you may not use this file except in compliance with the License.
146// You may obtain a copy of the License at
147//
148// http://www.apache.org/licenses/LICENSE-2.0
149//
150// Unless required by applicable law or agreed to in writing, software
151// distributed under the License is distributed on an "AS IS" BASIS,
152// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
153// See the License for the specific language governing permissions and
154// limitations under the License.
155// ----------------------------- END-OF-FILE ----------------------------------
156
157/** @} */
158/** @} */
159/** @} */
#define BSLS_IDENT(str)
Definition bsls_ident.h:195