//===----------------------------------------------------------------------===// // // 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 // //===----------------------------------------------------------------------===// // // template > // class basic_istream; // basic_istream(basic_istream const& rhs) = delete; // basic_istream& operator=(basic_istream const&) = delete; #include #include #include struct test_istream : public std::basic_istream { typedef std::basic_istream base; test_istream(test_istream&& s) : base(std::move(s)) // OK { } test_istream& operator=(test_istream&& s) { base::operator=(std::move(s)); // OK return *this; } test_istream(test_istream const& s) : base(s) // expected-error {{call to deleted constructor of 'std::basic_istream'}} { } test_istream& operator=(test_istream const& s) { base::operator=(s); // expected-error {{call to deleted member function 'operator='}} return *this; } }; int main(int, char**) { return 0; }