// Copyright 2017, 2023, 2024 Peter Dimov // Distributed under the Boost Software License, Version 1.0. // https://www.boost.org/LICENSE_1_0.txt #include #include #include #include #include #include #include #include template void test( bool exp ) { using boost::hash2::has_constant_size; if( exp ) { BOOST_TEST_TRAIT_TRUE((has_constant_size)); BOOST_TEST_TRAIT_TRUE((has_constant_size)); } else { BOOST_TEST_TRAIT_FALSE((has_constant_size)); BOOST_TEST_TRAIT_FALSE((has_constant_size)); } } struct X { }; int main() { test< void >( false ); test< X >( false ); test< std::vector >( false ); test< std::vector >( false ); test< std::string >( false ); test< std::set >( false ); test< std::array >( true ); test< std::array >( true ); test< std::array >( true ); test< std::array >( true ); test< boost::array >( true ); test< boost::array >( true ); test< boost::array >( true ); test< boost::array >( true ); test< std::array >( true ); test< std::array >( true ); using boost::hash2::digest; test< digest<1> >( true ); test< digest<16> >( true ); test< digest<20> >( true ); return boost::report_errors(); }