//===----------------------------------------------------------------------===// // // 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 // Aligned allocation is required by std::experimental::pmr, but it was not provided // before macosx10.13 and as a result we get linker errors when deploying to older than // macosx10.13. // XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11|12}} // // namespace std { namespace experimental { namespace pmr { // template > // using map = // ::std::map>> // // template > // using multimap = // ::std::multimap>> // // }}} // namespace std::experimental::pmr #include #include #include #include #include "test_macros.h" namespace pmr = std::experimental::pmr; int main(int, char**) { using K = int; using V = char; using DC = std::less; using OC = std::greater; using P = std::pair; { using StdMap = std::map>; using PmrMap = pmr::map; static_assert(std::is_same::value, ""); } { using StdMap = std::map>; using PmrMap = pmr::map; static_assert(std::is_same::value, ""); } { pmr::map m; assert(m.get_allocator().resource() == pmr::get_default_resource()); } { using StdMap = std::multimap>; using PmrMap = pmr::multimap; static_assert(std::is_same::value, ""); } { using StdMap = std::multimap>; using PmrMap = pmr::multimap; static_assert(std::is_same::value, ""); } { pmr::multimap m; assert(m.get_allocator().resource() == pmr::get_default_resource()); } return 0; }