diff --git a/include/boost/unordered/unordered_flat_set.hpp b/include/boost/unordered/unordered_flat_set.hpp index ef96d4e1..b1291caf 100644 --- a/include/boost/unordered/unordered_flat_set.hpp +++ b/include/boost/unordered/unordered_flat_set.hpp @@ -503,6 +503,68 @@ namespace boost { #pragma warning(pop) /* C4714 */ #endif +#if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES + template ::value_type>, + class Pred = + std::equal_to::value_type>, + class Allocator = std::allocator< + typename std::iterator_traits::value_type>, + class = boost::enable_if_t >, + class = boost::enable_if_t >, + class = boost::enable_if_t >, + class = boost::enable_if_t > > + unordered_flat_set(InputIterator, InputIterator, + std::size_t = boost::unordered::detail::foa::default_bucket_count, + Hash = Hash(), Pred = Pred(), Allocator = Allocator()) + -> unordered_flat_set< + typename std::iterator_traits::value_type, Hash, Pred, + Allocator>; + + template , + class Pred = std::equal_to, class Allocator = std::allocator, + class = boost::enable_if_t >, + class = boost::enable_if_t >, + class = boost::enable_if_t > > + unordered_flat_set(std::initializer_list, + std::size_t = boost::unordered::detail::foa::default_bucket_count, + Hash = Hash(), Pred = Pred(), Allocator = Allocator()) + -> unordered_flat_set; + + template >, + class = boost::enable_if_t > > + unordered_flat_set(InputIterator, InputIterator, std::size_t, Allocator) + -> unordered_flat_set< + typename std::iterator_traits::value_type, + boost::hash::value_type>, + std::equal_to::value_type>, + Allocator>; + + template >, + class = boost::enable_if_t >, + class = boost::enable_if_t > > + unordered_flat_set( + InputIterator, InputIterator, std::size_t, Hash, Allocator) + -> unordered_flat_set< + typename std::iterator_traits::value_type, Hash, + std::equal_to::value_type>, + Allocator>; + + template > > + unordered_flat_set(std::initializer_list, std::size_t, Allocator) + -> unordered_flat_set, std::equal_to, Allocator>; + + template >, + class = boost::enable_if_t > > + unordered_flat_set(std::initializer_list, std::size_t, Hash, Allocator) + -> unordered_flat_set, Allocator>; +#endif + } // namespace unordered } // namespace boost