[boost][range] - Improved handling of temporary ranges in range algorithms.

[SVN r63903]
This commit is contained in:
Neil Groves
2010-07-12 00:12:49 +00:00
parent ef000176d8
commit 74a01a4487
57 changed files with 1178 additions and 216 deletions

View File

@ -35,6 +35,7 @@ namespace boost
cont2.begin(), cont2.end());
std::vector<value_t> test_target(reference_target);
std::vector<value_t> test_target2(reference_target);
std::inplace_merge(reference_target.begin(),
reference_target.begin() + cont1.size(),
@ -47,6 +48,14 @@ namespace boost
reference_target.begin(), reference_target.end(),
test_target.begin(), test_target.end()
);
boost::inplace_merge(boost::make_iterator_range(test_target2),
test_target2.begin() + cont1.size());
BOOST_CHECK_EQUAL_COLLECTIONS(
reference_target.begin(), reference_target.end(),
test_target2.begin(), test_target2.end()
);
}
template<class Container, class BinaryPredicate>
@ -75,6 +84,7 @@ namespace boost
cont2.begin(), cont2.end());
std::vector<value_t> test_target(reference_target);
std::vector<value_t> test_target2(reference_target);
std::inplace_merge(reference_target.begin(),
reference_target.begin() + cont1.size(),
@ -88,6 +98,15 @@ namespace boost
reference_target.begin(), reference_target.end(),
test_target.begin(), test_target.end()
);
boost::inplace_merge(boost::make_iterator_range(test_target2),
test_target2.begin() + cont1.size(),
pred);
BOOST_CHECK_EQUAL_COLLECTIONS(
reference_target.begin(), reference_target.end(),
test_target2.begin(), test_target2.end()
);
}
template<class Container1, class Container2>