diff options
Diffstat (limited to 'libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/deduct.pass.cpp')
-rw-r--r-- | libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/deduct.pass.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/deduct.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/deduct.pass.cpp index 1ef7a3a34ad..012cfa46619 100644 --- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/deduct.pass.cpp +++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/deduct.pass.cpp @@ -25,20 +25,29 @@ int main() { // Test the explicit deduction guides { -// optional(T) +// optional(T) std::optional opt(5); static_assert(std::is_same_v<decltype(opt), std::optional<int>>, ""); - assert(static_cast<bool>(opt)); - assert(*opt == 5); + assert(static_cast<bool>(opt)); + assert(*opt == 5); } { -// optional(T) +// optional(T) std::optional opt(A{}); static_assert(std::is_same_v<decltype(opt), std::optional<A>>, ""); - assert(static_cast<bool>(opt)); + assert(static_cast<bool>(opt)); } // Test the implicit deduction guides + { +// optional(const optional &); + std::optional<char> source('A'); + std::optional opt(source); + static_assert(std::is_same_v<decltype(opt), std::optional<char>>, ""); + assert(static_cast<bool>(opt) == static_cast<bool>(source)); + assert(*opt == *source); + } + } |