/* Fast open-addressing concurrent hashmap. * * Copyright 2023 Christian Mazakas. * Copyright 2024 Braden Ganetsky. * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) * * See https://www.boost.org/libs/unordered for library home page. */ #ifndef BOOST_UNORDERED_CONCURRENT_FLAT_MAP_FWD_HPP #define BOOST_UNORDERED_CONCURRENT_FLAT_MAP_FWD_HPP #include #include #include #include #ifndef BOOST_NO_CXX17_HDR_MEMORY_RESOURCE #include #endif namespace boost { namespace unordered { template , class Pred = std::equal_to, class Allocator = std::allocator > > class concurrent_flat_map; template bool operator==( concurrent_flat_map const& lhs, concurrent_flat_map const& rhs); template bool operator!=( concurrent_flat_map const& lhs, concurrent_flat_map const& rhs); template void swap(concurrent_flat_map& x, concurrent_flat_map& y) noexcept(noexcept(x.swap(y))); template typename concurrent_flat_map::size_type erase_if( concurrent_flat_map& c, Predicate pred); #ifndef BOOST_NO_CXX17_HDR_MEMORY_RESOURCE namespace pmr { template , class Pred = std::equal_to > using concurrent_flat_map = boost::unordered::concurrent_flat_map > >; } // namespace pmr #endif } // namespace unordered using boost::unordered::concurrent_flat_map; } // namespace boost #endif // BOOST_UNORDERED_CONCURRENT_FLAT_MAP_HPP