remove \r
[extl.git] / extl / compiler / traits / compiler_traits.h
blobe08602e47dc9df1fa23a6a57e61b71777e80d237
1 /* ///////////////////////////////////////////////////////////////////////
2 * File: compiler_traits.h
4 * Created: 08.03.31
5 * Updated: 08.04.15
7 * Brief: The Compiler Traits
9 * [<Home>]
10 * Copyright (c) 2008-2020, Waruqi All rights reserved.
11 * //////////////////////////////////////////////////////////////////// */
13 #ifndef EXTL_COMPILER_TRAITS__H
14 #define EXTL_COMPILER_TRAITS_H
16 /*!\file compiler_traits.h
17 * \brief The Compiler traits
20 /* ///////////////////////////////////////////////////////////////////////
21 * Includes
23 #include "prefix.h"
24 #include "ebo_traits.h"
25 #include "edo_traits.h"
26 #include "rvo_traits.h"
28 /* ///////////////////////////////////////////////////////////////////////
29 * ::extl namespace
31 EXTL_BEGIN_NAMESPACE
33 /*!\brief The Compiler traits
35 * \ingroup extl_group_compiler
37 struct compiler_traits
39 /// EBO support
40 EXTL_STATIC_MEMBER_CONST(e_bool_t, is_support_ebo = (ebo_traits::is_support_ebo));
41 /// Extensible EBO support
42 EXTL_STATIC_MEMBER_CONST(e_bool_t, is_support_ebo_ex = (ebo_traits::is_support_ebo_ex));
44 /// EDO support
45 EXTL_STATIC_MEMBER_CONST(e_bool_t, is_support_edo = (edo_traits::is_support_edo));
46 /// Extensible EDO support
47 EXTL_STATIC_MEMBER_CONST(e_bool_t, is_support_edo_ex = (edo_traits::is_support_edo_ex));
49 /// RVO support
50 static e_bool_t is_support_rvo()
52 return rvo_traits::is_support_rvo();
54 /// NRVO support
55 static e_bool_t is_support_nrvo()
57 return rvo_traits::is_support_nrvo();
61 /* ///////////////////////////////////////////////////////////////////////
62 * Unit-testing
64 #ifdef EXTL_COMPILER_TRAITS_TEST_ENABLE
65 # include "unit_test/compiler_traits_test.h"
66 #endif
68 /* ///////////////////////////////////////////////////////////////////////
69 * ::extl namespace
71 EXTL_END_NAMESPACE
73 /* //////////////////////////////////////////////////////////////////// */
74 #endif /* EXTL_COMPILER_TRAITS_H */
75 /* //////////////////////////////////////////////////////////////////// */