1 /* ///////////////////////////////////////////////////////////////////////
2 * File: compiler_traits.h
7 * Brief: The Compiler Traits
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 /* ///////////////////////////////////////////////////////////////////////
24 #include "ebo_traits.h"
25 #include "edo_traits.h"
26 #include "rvo_traits.h"
28 /* ///////////////////////////////////////////////////////////////////////
33 /*!\brief The Compiler traits
35 * \ingroup extl_group_compiler
37 struct compiler_traits
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
));
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
));
50 static e_bool_t
is_support_rvo()
52 return rvo_traits::is_support_rvo();
55 static e_bool_t
is_support_nrvo()
57 return rvo_traits::is_support_nrvo();
61 /* ///////////////////////////////////////////////////////////////////////
64 #ifdef EXTL_COMPILER_TRAITS_TEST_ENABLE
65 # include "unit_test/compiler_traits_test.h"
68 /* ///////////////////////////////////////////////////////////////////////
73 /* //////////////////////////////////////////////////////////////////// */
74 #endif /* EXTL_COMPILER_TRAITS_H */
75 /* //////////////////////////////////////////////////////////////////// */