diff --git a/include/boost/optional/optional.hpp b/include/boost/optional/optional.hpp index 92df93d..aadc975 100644 --- a/include/boost/optional/optional.hpp +++ b/include/boost/optional/optional.hpp @@ -777,7 +777,7 @@ class optional_base : public optional_tag #include -// definition of metafunciton is_optional_val_init_candidate +// definition of metafunction is_optional_val_init_candidate template struct is_optional_related : boost::conditional< boost::is_base_of::type>::value @@ -813,9 +813,14 @@ struct is_optional_constructible : boost::true_type #endif // is_convertible condition -template +template ::value> struct is_optional_val_init_candidate - : boost::conditional< !is_optional_related::value && is_convertible_to_T_or_factory::value + : boost::false_type +{}; + +template +struct is_optional_val_init_candidate + : boost::conditional< is_convertible_to_T_or_factory::value , boost::true_type, boost::false_type>::type {};