@@ -822,20 +822,20 @@ template <typename type_, typename... options>
822
822
class class_ : public detail::generic_type {
823
823
template <typename T> using is_holder = detail::is_holder_type<type_, T>;
824
824
template <typename T> using is_subtype = std::is_base_of<type_, T>;
825
- template <typename T> using is_base_class = std::integral_constant< bool , std::is_base_of<T, type_>::value && !std::is_same<T, type_>::value>;
825
+ template <typename T> using is_base_class = detail::bool_constant< std::is_base_of<T, type_>::value && !std::is_same<T, type_>::value>;
826
826
#if defined(_MSC_VER) // MSVC fails with the below type alias, unable to find the is_holder, is_subtype, etc. predicate types
827
827
template <typename T> struct is_valid_class_option :
828
- std::integral_constant< bool , is_holder<T>::value || is_subtype<T>::value || is_base_class<T>::value> {};
828
+ detail::bool_constant< is_holder<T>::value || is_subtype<T>::value || is_base_class<T>::value> {};
829
829
#else
830
830
template <typename T> using is_valid_class_option =
831
- std::integral_constant< bool , is_holder<T>::value || is_subtype<T>::value || is_base_class<T>::value>;
831
+ detail::bool_constant< is_holder<T>::value || is_subtype<T>::value || is_base_class<T>::value>;
832
832
#endif
833
833
834
- using extracted_holder_t = typename detail::first_t <is_holder, options...>::type ;
834
+ using extracted_holder_t = typename detail::first_of_t <is_holder, options...>;
835
835
836
836
public:
837
837
using type = type_;
838
- using type_alias = typename detail::first_t <is_subtype, options...>::type ;
838
+ using type_alias = detail::first_of_t <is_subtype, options...>;
839
839
constexpr static bool has_alias = !std::is_void<type_alias>::value;
840
840
using holder_type = typename std::conditional<
841
841
std::is_void<extracted_holder_t >::value,
0 commit comments