[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

@ -29,11 +29,19 @@ namespace boost
const bool reference_ret
= std::next_permutation(reference.begin(), reference.end());
const bool test_ret
= boost::next_permutation(test);
const bool test_ret = boost::next_permutation(test);
BOOST_CHECK( reference_ret == test_ret );
BOOST_CHECK_EQUAL_COLLECTIONS(
reference.begin(), reference.end(),
test.begin(), test.end()
);
test = cont;
BOOST_CHECK( test_ret == boost::next_permutation(boost::make_iterator_range(test)) );
BOOST_CHECK_EQUAL_COLLECTIONS(
reference.begin(), reference.end(),
test.begin(), test.end()
@ -56,6 +64,15 @@ namespace boost
BOOST_CHECK( reference_ret == test_ret );
BOOST_CHECK_EQUAL_COLLECTIONS(
reference.begin(), reference.end(),
test.begin(), test.end()
);
test = cont;
BOOST_CHECK( test_ret == boost::next_permutation(boost::make_iterator_range(test), pred) );
BOOST_CHECK_EQUAL_COLLECTIONS(
reference.begin(), reference.end(),
test.begin(), test.end()