1
0
forked from boostorg/mp11

Replace implementation of tuple_transform

This commit is contained in:
Peter Dimov
2020-05-23 20:00:12 +03:00
parent dcf0d7ebdf
commit c51f83c25a
3 changed files with 37 additions and 81 deletions

View File

@@ -115,25 +115,25 @@ int main()
std::pair<T<3>, T<4>> tp2;
{
std::pair<T<2>, T<3>> s = tuple_transform( F{}, tp );
std::tuple<T<2>, T<3>> s = tuple_transform( F{}, tp );
BOOST_TEST_EQ( std::get<0>(s).value, 3 );
BOOST_TEST_EQ( std::get<1>(s).value, 4 );
}
{
std::pair<T<2>, T<3>> s = tuple_transform( F{}, std::move(tp) );
std::tuple<T<2>, T<3>> s = tuple_transform( F{}, std::move(tp) );
BOOST_TEST_EQ( std::get<0>(s).value, 3 );
BOOST_TEST_EQ( std::get<1>(s).value, 4 );
}
{
std::pair<T<4>, T<6>> s = tuple_transform( F{}, tp, tp2 );
std::tuple<T<4>, T<6>> s = tuple_transform( F{}, tp, tp2 );
BOOST_TEST_EQ( std::get<0>(s).value, 5 );
BOOST_TEST_EQ( std::get<1>(s).value, 7 );
}
{
std::pair<T<4>, T<6>> s = tuple_transform(
std::tuple<T<4>, T<6>> s = tuple_transform(
F{}, std::move(tp), std::move(tp2)
);
BOOST_TEST_EQ( std::get<0>(s).value, 5 );
@@ -146,25 +146,25 @@ int main()
std::pair<T<3>, T<4>> const tp2;
{
std::pair<T<2>, T<3>> s = tuple_transform( F{}, tp );
std::tuple<T<2>, T<3>> s = tuple_transform( F{}, tp );
BOOST_TEST_EQ( std::get<0>(s).value, 3 );
BOOST_TEST_EQ( std::get<1>(s).value, 4 );
}
{
std::pair<T<2>, T<3>> s = tuple_transform( F{}, std::move(tp) );
std::tuple<T<2>, T<3>> s = tuple_transform( F{}, std::move(tp) );
BOOST_TEST_EQ( std::get<0>(s).value, 3 );
BOOST_TEST_EQ( std::get<1>(s).value, 4 );
}
{
std::pair<T<4>, T<6>> s = tuple_transform( F{}, tp, tp2 );
std::tuple<T<4>, T<6>> s = tuple_transform( F{}, tp, tp2 );
BOOST_TEST_EQ( std::get<0>(s).value, 5 );
BOOST_TEST_EQ( std::get<1>(s).value, 7 );
}
{
std::pair<T<4>, T<6>> s = tuple_transform(
std::tuple<T<4>, T<6>> s = tuple_transform(
F{}, std::move(tp), std::move(tp2)
);
BOOST_TEST_EQ( std::get<0>(s).value, 5 );