diff --git a/include/boost/unordered/unordered_set.hpp b/include/boost/unordered/unordered_set.hpp index b3e75134..7c8ce72c 100644 --- a/include/boost/unordered/unordered_set.hpp +++ b/include/boost/unordered/unordered_set.hpp @@ -19,6 +19,7 @@ #include #include #include +#include #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) #include @@ -621,41 +622,56 @@ namespace boost { class Pred = std::equal_to::value_type>, class Allocator = std::allocator< - typename std::iterator_traits::value_type> > + 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_set(InputIterator, InputIterator, std::size_t = boost::unordered::detail::default_bucket_count, Hash = Hash(), Pred = Pred(), Allocator = Allocator()) - ->unordered_set::value_type, + -> unordered_set::value_type, Hash, Pred, Allocator>; template , - class Pred = std::equal_to, class Allocator = std::allocator > + 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_set(std::initializer_list, std::size_t = boost::unordered::detail::default_bucket_count, Hash = Hash(), Pred = Pred(), Allocator = Allocator()) - ->unordered_set; + -> unordered_set; - template + template >, + class = boost::enable_if_t > > unordered_set(InputIterator, InputIterator, std::size_t, Allocator) - ->unordered_set::value_type, + -> unordered_set::value_type, boost::hash::value_type>, std::equal_to::value_type>, Allocator>; - template + template >, + class = boost::enable_if_t >, + class = boost::enable_if_t > > unordered_set(InputIterator, InputIterator, std::size_t, Hash, Allocator) - ->unordered_set::value_type, + -> unordered_set::value_type, Hash, std::equal_to::value_type>, Allocator>; - template + template > > unordered_set(std::initializer_list, std::size_t, Allocator) - ->unordered_set, std::equal_to, Allocator>; + -> unordered_set, std::equal_to, Allocator>; - template + template >, + class = boost::enable_if_t > > unordered_set(std::initializer_list, std::size_t, Hash, Allocator) - ->unordered_set, Allocator>; + -> unordered_set, Allocator>; #endif @@ -1233,44 +1249,59 @@ namespace boost { class Pred = std::equal_to::value_type>, class Allocator = std::allocator< - typename std::iterator_traits::value_type> > + 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_multiset(InputIterator, InputIterator, std::size_t = boost::unordered::detail::default_bucket_count, Hash = Hash(), Pred = Pred(), Allocator = Allocator()) - ->unordered_multiset< + -> unordered_multiset< typename std::iterator_traits::value_type, Hash, Pred, Allocator>; template , - class Pred = std::equal_to, class Allocator = std::allocator > + 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_multiset(std::initializer_list, std::size_t = boost::unordered::detail::default_bucket_count, Hash = Hash(), Pred = Pred(), Allocator = Allocator()) - ->unordered_multiset; + -> unordered_multiset; - template + template >, + class = boost::enable_if_t > > unordered_multiset(InputIterator, InputIterator, std::size_t, Allocator) - ->unordered_multiset< + -> unordered_multiset< typename std::iterator_traits::value_type, boost::hash::value_type>, std::equal_to::value_type>, Allocator>; - template + template >, + class = boost::enable_if_t >, + class = boost::enable_if_t > > unordered_multiset( InputIterator, InputIterator, std::size_t, Hash, Allocator) - ->unordered_multiset< + -> unordered_multiset< typename std::iterator_traits::value_type, Hash, std::equal_to::value_type>, Allocator>; - template + template > > unordered_multiset(std::initializer_list, std::size_t, Allocator) - ->unordered_multiset, std::equal_to, Allocator>; + -> unordered_multiset, std::equal_to, Allocator>; - template + template >, + class = boost::enable_if_t > > unordered_multiset(std::initializer_list, std::size_t, Hash, Allocator) - ->unordered_multiset, Allocator>; + -> unordered_multiset, Allocator>; #endif