// Copyright 2022, 2025 Peter Dimov. // Distributed under the Boost Software License, Version 1.0. // https://www.boost.org/LICENSE_1_0.txt #include #include #include #include #include enum my_char { min = 0, max = 255 }; int main() { using boost::hash_is_avalanching; BOOST_TEST_TRAIT_TRUE(( hash_is_avalanching< boost::hash > )); BOOST_TEST_TRAIT_TRUE(( hash_is_avalanching< boost::hash > )); #if !defined(BOOST_NO_CXX11_CHAR16_T) BOOST_TEST_TRAIT_TRUE(( hash_is_avalanching< boost::hash > )); #endif #if !defined(BOOST_NO_CXX11_CHAR32_T) BOOST_TEST_TRAIT_TRUE(( hash_is_avalanching< boost::hash > )); #endif #if defined(__cpp_char8_t) && __cpp_char8_t >= 201811L BOOST_TEST_TRAIT_TRUE(( hash_is_avalanching< boost::hash< std::basic_string > > )); #endif #if defined(_LIBCPP_VERSION) && _LIBCPP_VERSION >= 160000 // std::char_traits is deprecated for non-char types #else BOOST_TEST_TRAIT_FALSE(( hash_is_avalanching< boost::hash > > )); #endif return boost::report_errors(); }