12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #ifndef BOOST_UNORDERED_HASH_TRAITS_HPP
- #define BOOST_UNORDERED_HASH_TRAITS_HPP
- #include <boost/unordered/detail/type_traits.hpp>
- namespace boost{
- namespace unordered{
- namespace detail{
- template<typename Hash,typename=void>
- struct hash_is_avalanching_impl:std::false_type{};
- template<typename IsAvalanching>
- struct avalanching_value
- {
- static constexpr bool value=IsAvalanching::value;
- };
- template<> struct avalanching_value<void>
- {
- static constexpr bool value=true;
- };
- template<typename Hash>
- struct hash_is_avalanching_impl<
- Hash,
- boost::unordered::detail::void_t<typename Hash::is_avalanching>
- >:std::integral_constant<
- bool,
- avalanching_value<typename Hash::is_avalanching>::value
- >{};
- template<typename Hash>
- struct hash_is_avalanching_impl<
- Hash,
- typename std::enable_if<((void)Hash::is_avalanching,true)>::type
- >{};
- }
- template<typename Hash>
- struct hash_is_avalanching: detail::hash_is_avalanching_impl<Hash>::type{};
- }
- }
- #endif
|