1 #ifndef INCG_PHI_CORE_TYPE_TRAITS_IS_ASSIGNABLE_HPP 2 #define INCG_PHI_CORE_TYPE_TRAITS_IS_ASSIGNABLE_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/compiler_support/intrinsics/is_assignable.hpp" 13 #include "phi/type_traits/integral_constant.hpp" 15 #if PHI_SUPPORTS_IS_ASSIGNABLE() 17 DETAIL_PHI_BEGIN_NAMESPACE()
19 template <typename TypeT, typename ArgT>
23 template <
typename TypeT,
typename ArgT>
27 # if PHI_HAS_FEATURE_VARIABLE_TEMPLATE() 29 template <
typename TypeT,
typename ArgT>
30 PHI_INLINE_VARIABLE PHI_CONSTEXPR
bool is_assignable_v = PHI_IS_ASSIGNABLE(TypeT, ArgT);
32 template <
typename TypeT,
typename ArgT>
33 PHI_INLINE_VARIABLE PHI_CONSTEXPR
bool is_not_assignable_v = !PHI_IS_ASSIGNABLE(TypeT, ArgT);
39 # include "phi/core/declval.hpp" 40 # include "phi/type_traits/is_void.hpp" 42 DETAIL_PHI_BEGIN_NAMESPACE()
46 template <
typename,
typename TypeT>
52 template <
typename TypeT,
typename ArgT>
54 is_assignable_test(
int);
56 template <
typename,
typename>
63 template <
typename TypeT,
typename ArgT>
68 template <
typename TypeT,
typename ArgT>
72 template <
typename TypeT,
typename ArgT>
76 # if PHI_HAS_FEATURE_VARIABLE_TEMPLATE() 78 template <
typename TypeT,
typename ArgT>
81 template <
typename TypeT,
typename ArgT>
88 DETAIL_PHI_END_NAMESPACE()
90 #endif // INCG_PHI_CORE_TYPE_TRAITS_IS_ASSIGNABLE_HPP Definition: integral_constant.hpp:19
Definition: is_assignable.hpp:69
Definition: is_assignable.hpp:47
Definition: is_assignable.hpp:60
Definition: is_assignable.hpp:73
Definition: is_void.hpp:17