Index: test/std/utilities/variant/variant.variant/variant.assign/not_copy_constructible.fail.cpp =================================================================== --- /dev/null +++ test/std/utilities/variant/variant.variant/variant.assign/not_copy_constructible.fail.cpp @@ -0,0 +1,33 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +// UNSUPPORTED: c++98, c++03, c++11, c++14 + +// + +// LWG issue 3024 + +#include +#include + +struct NotCopyConstructible +{ + NotCopyConstructible() = default; + NotCopyConstructible(NotCopyConstructible const&) = delete; +}; + +int main(int, char**) +{ + static_assert(!std::is_copy_constructible_v); + + std::variant v; + std::variant v1; + std::variant v2(v); // expected-error {{call to implicitly-deleted copy constructor of 'std::variant'}} + v1 = v; // expected-error {{object of type 'std::__1::variant' cannot be assigned because its copy assignment operator is implicitly deleted}} +} Index: www/cxx2a_status.html =================================================================== --- www/cxx2a_status.html +++ www/cxx2a_status.html @@ -213,7 +213,7 @@ 2993reference_wrapper conversion from T&&Albuquerque 2998Requirements on function objects passed to {forward_,}list-specific algorithmsAlbuquerqueNothing to do 3001weak_ptr::element_type needs remove_extent_tAlbuquerque - 3024variant's copies must be deleted instead of disabled via SFINAEAlbuquerque + 3024variant's copies must be deleted instead of disabled via SFINAEAlbuquerqueComplete 2164What are the semantics of vector.emplace(vector.begin(), vector.back())?JacksonvilleComplete