diff --git a/include/optional b/include/optional index 002842f5b..a80120f00 100644 --- a/include/optional +++ b/include/optional @@ -531,7 +531,7 @@ private: }; template using _CheckOptionalArgsCtor = conditional_t< - !is_same_v && + !is_same_v, in_place_t> && !is_same_v, optional>, _CheckOptionalArgsConstructor, __check_tuple_constructor_fail diff --git a/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp b/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp index 4020d70a4..d068fbc2d 100644 --- a/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp +++ b/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp @@ -35,6 +35,11 @@ struct ExplicitThrow constexpr explicit ExplicitThrow(int x) { if (x != -1) TEST_THROW(6);} }; +struct ImplicitAny { + template + constexpr ImplicitAny(U&&) {} +}; + template constexpr bool implicit_conversion(optional&& opt, const From& v) @@ -79,6 +84,15 @@ void test_implicit() using T = TestTypes::TestType; assert(implicit_conversion(3, T(3))); } + { + using O = optional; + static_assert(!test_convertible(), ""); + static_assert(!test_convertible(), ""); + static_assert(!test_convertible(), ""); + static_assert(!test_convertible(), ""); + static_assert(!test_convertible(), ""); + + } #ifndef TEST_HAS_NO_EXCEPTIONS { try { diff --git a/www/cxx1z_status.html b/www/cxx1z_status.html index 6b832d6a4..bca7f3203 100644 --- a/www/cxx1z_status.html +++ b/www/cxx1z_status.html @@ -460,7 +460,7 @@ 2835LWG 2536 seems to misspecify <tgmath.h>Kona 2837gcd and lcm should support a wider range of input valuesKonaComplete 2838is_literal_type specification needs a little cleanupKonaComplete - 2842in_place_t check for optional::optional(U&&) should decay UKona + 2842in_place_t check for optional::optional(U&&) should decay UKonaComplete 2850std::function move constructor does unnecessary workKona 2853Possible inconsistency in specification of erase in [vector.modifiers]Kona 2855std::throw_with_nested("string_literal")Kona