// -*- 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 // // template class variant; // template // variant& operator=(T&&) noexcept(see below); #include #include #include int main(int, char**) { std::variant v1; std::variant v2; std::variant v3; v1 = 1; // expected-error {{no viable overloaded '='}} v2 = 1; // expected-error {{no viable overloaded '='}} v3 = 1; // expected-error {{no viable overloaded '='}} std::variant v4; std::variant v5; std::variant v6; v4 = 1; // expected-error {{no viable overloaded '='}} v5 = 1; // expected-error {{no viable overloaded '='}} v6 = 1; // expected-error {{no viable overloaded '='}} std::variant v7; std::variant v8; std::variant v9; v7 = "meow"; // expected-error {{no viable overloaded '='}} v8 = "meow"; // expected-error {{no viable overloaded '='}} v9 = "meow"; // expected-error {{no viable overloaded '='}} std::variant v10; std::variant v11; std::variant v12; v10 = std::true_type(); // expected-error {{no viable overloaded '='}} v11 = std::unique_ptr(); // expected-error {{no viable overloaded '='}} v12 = nullptr; // expected-error {{no viable overloaded '='}} }