diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 72414e3..9fdbddf 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -403,6 +403,8 @@ compile-fail sv_nullptr_fail.cpp compile sv_construct_test_cx.cpp ; compile sv_construct_test_cx2.cpp ; +run sv_hash_test.cpp : : : $(CPP11) /boost/container_hash//boost_container_hash ; + run span_test.cpp ; run span_types_test.cpp ; run span_constructible_test.cpp ; diff --git a/test/sv_hash_test.cpp b/test/sv_hash_test.cpp new file mode 100644 index 0000000..ce05f21 --- /dev/null +++ b/test/sv_hash_test.cpp @@ -0,0 +1,48 @@ +// Copyright 2021-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 + +template std::size_t hv( T const& t ) +{ + return boost::hash()( t ); +} + +template void test( Ch const* p ) +{ + std::basic_string s( p ); + boost::core::basic_string_view sv( s ); + + BOOST_TEST_EQ( hv( s ), hv( sv ) ); +} + +int main() +{ + test( "123" ); + test( L"123" ); + +#if !defined(BOOST_NO_CXX11_CHAR16_T) + + test( u"123" ); + +#endif + +#if !defined(BOOST_NO_CXX11_CHAR32_T) + + test( U"123" ); + +#endif + +#if defined(__cpp_char8_t) && __cpp_char8_t >= 201811L + + test( u8"123" ); + +#endif + + return boost::report_errors(); +}