Phi
is_nothrow_default_constructible.hpp
1 #ifndef INCG_PHI_CORE_TYPE_TRAITS_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE_HPP
2 #define INCG_PHI_CORE_TYPE_TRAITS_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE_HPP
3 
4 #include "phi/phi_config.hpp"
5 
6 #if PHI_HAS_EXTENSION_PRAGMA_ONCE()
7 # pragma once
8 #endif
9 
10 #include "phi/compiler_support/constexpr.hpp"
11 #include "phi/compiler_support/inline_variables.hpp"
12 #include "phi/type_traits/integral_constant.hpp"
13 #include "phi/type_traits/is_nothrow_constructible.hpp"
14 
15 #define PHI_HAS_WORKING_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE() \
16  PHI_HAS_WORKING_IS_NOTHROW_CONSTRUCTIBLE()
17 
18 DETAIL_PHI_BEGIN_NAMESPACE()
19 
20 template <typename TypeT>
22 {};
23 
24 template <typename TypeT>
26  : public integral_constant<bool, !is_nothrow_default_constructible<TypeT>::value>
27 {};
28 
29 #if PHI_HAS_FEATURE_VARIABLE_TEMPLATE()
30 
31 template <typename TypeT>
32 PHI_INLINE_VARIABLE PHI_CONSTEXPR bool is_nothrow_default_constructible_v =
34 
35 template <typename TypeT>
36 PHI_INLINE_VARIABLE PHI_CONSTEXPR bool is_not_nothrow_default_constructible_v =
38 
39 #endif
40 
41 DETAIL_PHI_END_NAMESPACE()
42 
43 #endif // INCG_PHI_CORE_TYPE_TRAITS_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE_HPP
Definition: integral_constant.hpp:19
Definition: is_nothrow_default_constructible.hpp:25
Definition: is_nothrow_default_constructible.hpp:21
Definition: is_nothrow_constructible.hpp:160