/* Fast open-addressing concurrent hashset. * * Copyright 2023 Christian Mazakas. * Copyright 2023 Joaquin M Lopez Munoz. * 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_SET_FWD_HPP #define BOOST_UNORDERED_CONCURRENT_FLAT_SET_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_set; template bool operator==( concurrent_flat_set const& lhs, concurrent_flat_set const& rhs); template bool operator!=( concurrent_flat_set const& lhs, concurrent_flat_set const& rhs); template void swap(concurrent_flat_set& x, concurrent_flat_set& y) noexcept(noexcept(x.swap(y))); template typename concurrent_flat_set::size_type erase_if( concurrent_flat_set& c, Predicate pred); #ifndef BOOST_NO_CXX17_HDR_MEMORY_RESOURCE namespace pmr { template , class Pred = std::equal_to > using concurrent_flat_set = boost::unordered::concurrent_flat_set >; } // namespace pmr #endif } // namespace unordered using boost::unordered::concurrent_flat_set; } // namespace boost #endif // BOOST_UNORDERED_CONCURRENT_FLAT_SET_FWD_HPP