// Copyright 2024 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_DESCRIBE_CXX14) BOOST_PRAGMA_MESSAGE( "Test skipped, because BOOST_DESCRIBE_CXX14 is not defined" ) int main() {} #else #include struct X { int a; int b; }; BOOST_DESCRIBE_STRUCT(X, (), (a, b)) template void test( X const& x, int const (&a)[ 2 ], R r ) { Flavor f; { Hash h; hash_append( h, f, x ); BOOST_TEST_EQ( h.result(), r ); } { Hash h; hash_append( h, f, a ); BOOST_TEST_EQ( h.result(), r ); } } int main() { using namespace boost::hash2; test( {}, {}, 2615243109 ); test( {}, {}, 2615243109 ); test( {}, {}, 2615243109 ); test( { 1, 2 }, { 1, 2 }, 3738734694 ); test( { 1, 2 }, { 1, 2 }, 1396319868 ); return boost::report_errors(); } #endif