1 #ifndef INCG_PHI_CORE_TYPE_TRAITS_DECAY_HPP 2 #define INCG_PHI_CORE_TYPE_TRAITS_DECAY_HPP 4 #include "phi/phi_config.hpp" 6 #if PHI_HAS_EXTENSION_PRAGMA_ONCE() 10 #include "phi/compiler_support/intrinsics/decay.hpp" 12 #if PHI_SUPPORTS_DECAY() 14 DETAIL_PHI_BEGIN_NAMESPACE()
16 template <typename TypeT>
19 using type = PHI_DECAY(TypeT);
22 template <
typename TypeT>
23 using decay_t = PHI_DECAY(TypeT);
27 # include "phi/type_traits/add_pointer.hpp" 28 # include "phi/type_traits/conditional.hpp" 29 # include "phi/type_traits/is_array.hpp" 30 # include "phi/type_traits/is_function.hpp" 31 # include "phi/type_traits/is_referenceable.hpp" 32 # include "phi/type_traits/remove_cv.hpp" 33 # include "phi/type_traits/remove_extent.hpp" 35 DETAIL_PHI_BEGIN_NAMESPACE()
39 template <
typename TypeT,
bool>
42 using type = remove_cv_t<TypeT>;
45 template <
typename TypeT>
49 using type = conditional_t<
51 conditional_t<is_function<TypeT>::value, add_pointer_t<TypeT>, remove_cv_t<TypeT>>>;
55 template <
typename TypeT>
59 using NoRefT =
typename remove_reference<TypeT>::type;
65 template <
typename TypeT>
66 using decay_t =
typename decay<TypeT>::type;
70 DETAIL_PHI_END_NAMESPACE()
72 #endif // INCG_PHI_CORE_TYPE_TRAITS_DECAY_HPP Definition: is_array.hpp:21