InsightsStrongTypes.h
Go to the documentation of this file.
1
/******************************************************************************
2
*
3
* C++ Insights, copyright (C) by Andreas Fertig
4
* Distributed under an MIT license. See LICENSE for details
5
*
6
****************************************************************************/
7
8
#ifndef INSIGHTS_STRONG_TYPES
9
#define INSIGHTS_STRONG_TYPES
10
11
/// \brief A more than simple typsafe \c bool
12
///
13
/// This macro creates a class enum with two enumerators:
14
/// - \c No
15
/// - \c Yes
16
///
17
/// Usage:
18
/// \code
19
/// STRONG_BOOL(AddNewLine);
20
/// void Foo(AddNewLine);
21
/// ...
22
/// void Bar() {
23
/// Foo(AddNewLine::Yes);
24
/// }
25
/// \endcode
26
#define STRONG_BOOL(typeName) \
27
enum class typeName : bool \
28
{ \
29
No = false, \
30
Yes = true \
31
}
32
33
#endif
/* INSIGHTS_STRONG_TYPES */
Generated by
1.9.1