9#define ENABLE_VALUE(x) template <typename T> constexpr bool x##_v = x<T>::value
10#define ENABLE_TYPE(x) template <typename T> using x##_t = typename x<T>::type
18 disjunction<is_unsigned<T>, is_same<T, unsigned __int128>>;
23 is_same<T, unsigned __int128>>;
38 numeric_limits<unsigned int>::max()>;
43 bool_constant<numeric_limits<T>::max() <=
44 numeric_limits<unsigned long long>::max()>;
49 conditional<is_32bit_or_less_v<T>,
unsigned long long,
unsigned __int128>;
54 conditional<is_32bit_or_less_v<T>,
long long, __int128>;
59 conditional<is_signed_v<T>, safely_multipliable_signed_t<T>,
60 safely_multipliable_unsigned_t<T>>;
63template <
typename>
struct is_pair : false_type {};
64template <
typename T,
typename U>
struct is_pair<pair<T, U>> : true_type {};
Definition type_traits.hpp:7
bool_constant< numeric_limits< T >::max()<= numeric_limits< unsigned int >::max()> is_32bit_or_less
Definition type_traits.hpp:37
bool_constant< numeric_limits< T >::max()<= numeric_limits< unsigned long long >::max()> is_64bit_or_less
Definition type_traits.hpp:42
conjunction< is_broadly_signed< T >, is_broadly_integral< T > > is_broadly_signed_integral
Definition type_traits.hpp:27
conditional< is_32bit_or_less_v< T >, unsigned long long, unsigned __int128 > safely_multipliable_unsigned
Definition type_traits.hpp:48
disjunction< is_integral< T >, is_same< T, __int128 >, is_same< T, unsigned __int128 > > is_broadly_integral
Definition type_traits.hpp:22
conditional< is_signed_v< T >, safely_multipliable_signed_t< T >, safely_multipliable_unsigned_t< T > > safely_multipliable
Definition type_traits.hpp:58
conjunction< is_broadly_unsigned< T >, is_broadly_integral< T > > is_broadly_unsigned_integral
Definition type_traits.hpp:32
disjunction< is_signed< T >, is_same< T, __int128 > > is_broadly_signed
Definition type_traits.hpp:13
disjunction< is_unsigned< T >, is_same< T, unsigned __int128 > > is_broadly_unsigned
Definition type_traits.hpp:17
conditional< is_32bit_or_less_v< T >, long long, __int128 > safely_multipliable_signed
Definition type_traits.hpp:53
Definition type_traits.hpp:63
#define ENABLE_TYPE(x)
Definition type_traits.hpp:10
#define ENABLE_VALUE(x)
Definition type_traits.hpp:9