// Copyright 2025 Joaquin M Lopez Munoz. // Distributed under the Boost Software License, Version 1.0. // https://www.boost.org/LICENSE_1_0.txt #ifndef BOOST_HASH_HASH_IS_AVALANCHING_HPP_INCLUDED #define BOOST_HASH_HASH_IS_AVALANCHING_HPP_INCLUDED #include namespace boost { namespace hash_detail { template struct make_void { using type = void; }; template using void_t = typename make_void::type; template struct avalanching_value { static constexpr bool value = IsAvalanching::value; }; // may be explicitly marked as BOOST_DEPRECATED in the future template<> struct avalanching_value { static constexpr bool value = true; }; template struct hash_is_avalanching_impl: std::false_type { }; template struct hash_is_avalanching_impl >: std::integral_constant::value> { }; template struct hash_is_avalanching_impl::type> { // Hash::is_avalanching is not a type: we don't define value to produce // a compile error downstream }; } // namespace hash_detail template struct hash_is_avalanching: hash_detail::hash_is_avalanching_impl::type { }; } // namespace boost #endif // #ifndef BOOST_HASH_HASH_IS_AVALANCHING_HPP_INCLUDED