Phi
enable_if.hpp
1 #ifndef INCG_PHI_CORE_TYPE_TRAITS_ENABLE_IF_HPP
2 #define INCG_PHI_CORE_TYPE_TRAITS_ENABLE_IF_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/features.hpp"
11 
12 DETAIL_PHI_BEGIN_NAMESPACE()
13 
14 template <bool BooleanValue, typename TypeT = void>
15 struct enable_if
16 {};
17 
18 template <typename TypeT>
19 struct enable_if<true, TypeT>
20 {
21  using type = TypeT;
22 };
23 
24 #if PHI_HAS_FEATURE_ALIAS_TEMPLATES()
25 
26 template <bool BooleanValue, typename TypeT = void>
27 using enable_if_t = typename enable_if<BooleanValue, TypeT>::type;
28 
29 #endif
30 
31 DETAIL_PHI_END_NAMESPACE()
32 
33 #endif // INCG_PHI_CORE_TYPE_TRAITS_ENABLE_IF_HPP
Definition: enable_if.hpp:15