//===----------------------------------------------------------------------===// // // 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_map(key_container_type key_cont, mapped_container_type mapped_cont, // const key_compare& comp = key_compare()); // template // flat_map(const key_container_type& key_cont, const mapped_container_type& mapped_cont, // const Allocator& a); // template // flat_map(const key_container_type& key_cont, const mapped_container_type& mapped_cont, // const key_compare& comp, const Alloc& a); #include #include #include #include #include #include "min_allocator.h" #include "MoveOnly.h" #include "test_allocator.h" #include "test_iterators.h" #include "test_macros.h" #include "../helpers.h" #include "../../../test_compare.h" struct P { int first; int second; template constexpr bool operator==(const std::pair& rhs) const { return MoveOnly(first) == rhs.first && MoveOnly(second) == rhs.second; } }; template