//===----------------------------------------------------------------------===// // // 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++03, c++11, c++14, c++17, c++20 // // flat_set(); #include #include #include #include #include #include #include "min_allocator.h" #include "MoveOnly.h" #include "test_allocator.h" #include "test_macros.h" struct DefaultCtableComp { constexpr explicit DefaultCtableComp() { default_constructed_ = true; } constexpr bool operator()(int, int) const { return false; } bool default_constructed_ = false; }; struct ThrowingCtorComp { constexpr ThrowingCtorComp() noexcept(false) {} constexpr bool operator()(const auto&, const auto&) const { return false; } }; template