// Copyright 2022 Peter Dimov. // Distributed under the Boost Software License, Version 1.0. // https://www.boost.org/LICENSE_1_0.txt #include #include #include #include #if defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) BOOST_PRAGMA_MESSAGE( "Test skipped, BOOST_NO_CXX11_HDR_TYPE_TRAITS is defined" ) int main() {} #elif defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) BOOST_PRAGMA_MESSAGE( "Test skipped, BOOST_NO_CXX11_TEMPLATE_ALIASES is defined" ) int main() {} #else #include #include enum my_char { min = 0, max = 255 }; int main() { using boost::unordered::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 BOOST_TEST_TRAIT_FALSE(( hash_is_avalanching< boost::hash > > )); return boost::report_errors(); } #endif