//===----------------------------------------------------------------------===// // // 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 // //===----------------------------------------------------------------------===// // // set& operator=(set&& c) // noexcept( // allocator_type::propagate_on_container_move_assignment::value && // is_nothrow_move_assignable::value && // is_nothrow_move_assignable::value); // This tests a conforming extension // UNSUPPORTED: c++03 #include #include "test_macros.h" #include "MoveOnly.h" #include "test_allocator.h" template struct some_comp { using value_type = T; some_comp& operator=(const some_comp&); bool operator()(const T&, const T&) const { return false; } }; template struct always_equal_alloc { using value_type = T; always_equal_alloc(const always_equal_alloc&); void allocate(std::size_t); }; template struct not_always_equal_alloc { int i; using value_type = T; not_always_equal_alloc(const not_always_equal_alloc&); void allocate(std::size_t); }; template