1 #ifndef INCG_PHI_CORE_TYPE_TRAITS_IS_UNSCOPED_ENUM_HPP 2 #define INCG_PHI_CORE_TYPE_TRAITS_IS_UNSCOPED_ENUM_HPP 4 #include "phi/phi_config.hpp" 6 #if PHI_HAS_EXTENSION_PRAGMA_ONCE() 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_convertible.hpp" 14 #include "phi/type_traits/is_enum.hpp" 15 #include "phi/type_traits/to_underlying.hpp" 17 DETAIL_PHI_BEGIN_NAMESPACE()
19 #if PHI_HAS_WORKING_IS_ENUM() && PHI_HAS_WORKING_UNDERLYING_TYPE() 20 # define PHI_HAS_WORKING_IS_UNSCOPED_ENUM() 1 22 # define PHI_HAS_WORKING_IS_UNSCOPED_ENUM() 0 27 template <
typename TypeT,
bool IsEnum>
31 template <
typename TypeT>
33 :
public integral_constant<bool, is_convertible<TypeT, underlying_type_t<TypeT>>::value>
37 template <
typename TypeT>
41 template <
typename TypeT>
45 #if PHI_HAS_FEATURE_VARIABLE_TEMPLATE() 47 template <
typename TypeT>
50 template <
typename TypeT>
55 DETAIL_PHI_END_NAMESPACE()
57 #endif // INCG_PHI_CORE_TYPE_TRAITS_IS_UNSCOPED_ENUM_HPP Definition: integral_constant.hpp:19
Definition: is_unscoped_enum.hpp:42
Definition: is_unscoped_enum.hpp:38
Definition: is_unscoped_enum.hpp:28