diff options
Diffstat (limited to 'libs/range')
-rw-r--r-- | libs/range/doc/html/index.html | 2 | ||||
-rw-r--r-- | libs/range/doc/html/range/reference/algorithms/introduction.html | 2 | ||||
-rw-r--r-- | libs/range/doc/reference/algorithms.qbk | 2 | ||||
-rw-r--r-- | libs/range/meta/libraries.json | 16 | ||||
-rw-r--r-- | libs/range/test/iterator_range.cpp | 41 |
5 files changed, 47 insertions, 16 deletions
diff --git a/libs/range/doc/html/index.html b/libs/range/doc/html/index.html index e698d190a..9f673a081 100644 --- a/libs/range/doc/html/index.html +++ b/libs/range/doc/html/index.html @@ -150,7 +150,7 @@ </p> </div> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> -<td align="left"><p><small>Last revised: October 30, 2014 at 10:16:50 GMT</small></p></td> +<td align="left"><p><small>Last revised: April 07, 2015 at 22:46:26 GMT</small></p></td> <td align="right"><div class="copyright-footer"></div></td> </tr></table> <hr> diff --git a/libs/range/doc/html/range/reference/algorithms/introduction.html b/libs/range/doc/html/range/reference/algorithms/introduction.html index fcefa2b9a..51babbc43 100644 --- a/libs/range/doc/html/range/reference/algorithms/introduction.html +++ b/libs/range/doc/html/range/reference/algorithms/introduction.html @@ -210,7 +210,7 @@ </p> <p> Notice the use of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_found_end</span></code>. - What if we wanted to erase all the duplicates except one of them? In old-fashined + What if we wanted to erase all the duplicates except one of them? In old-fashioned STL-programming we might write </p> <p> diff --git a/libs/range/doc/reference/algorithms.qbk b/libs/range/doc/reference/algorithms.qbk index ce4b14016..8dcd84896 100644 --- a/libs/range/doc/reference/algorithms.qbk +++ b/libs/range/doc/reference/algorithms.qbk @@ -63,7 +63,7 @@ std::vector<int> vec = ...; boost::erase(vec, boost::unique<boost::return_found_end>(boost::sort(vec))); `` -Notice the use of `boost::return_found_end`. What if we wanted to erase all the duplicates except one of them? In old-fashined STL-programming we might write +Notice the use of `boost::return_found_end`. What if we wanted to erase all the duplicates except one of them? In old-fashioned STL-programming we might write `` // assume 'vec' is already sorted diff --git a/libs/range/meta/libraries.json b/libs/range/meta/libraries.json new file mode 100644 index 000000000..9e2be2093 --- /dev/null +++ b/libs/range/meta/libraries.json @@ -0,0 +1,16 @@ +{ + "key": "range", + "name": "Range", + "authors": [ + "Niel Groves", + "Thorsten Ottosen" + ], + "description": "A new infrastructure for generic algorithms that builds on top of the new iterator concepts.", + "category": [ + "Algorithms" + ], + "maintainers": [ + "Neil Groves <neilgroves -at- googlemail.com>", + "Nathan Ridge <zeratul976 -at- hotmail.com>" + ] +} diff --git a/libs/range/test/iterator_range.cpp b/libs/range/test/iterator_range.cpp index 168eb2218..97c966ac5 100644 --- a/libs/range/test/iterator_range.cpp +++ b/libs/range/test/iterator_range.cpp @@ -266,21 +266,18 @@ inline void test_advance() BOOST_CHECK_EQUAL(r3.advance_end(-1).size(), 1u); } -boost::unit_test::test_suite* init_unit_test_suite( int argc, char* argv[] ) +struct ptr_iterator + : boost::iterator_adaptor<ptr_iterator, int *> { - boost::unit_test::test_suite* test = BOOST_TEST_SUITE( "Range Test Suite" ); - - test->add(BOOST_TEST_CASE(&check_iterator_range)); - test->add(BOOST_TEST_CASE(&check_iterator_range_operator<iterator_range_test_detail::less>)); - test->add(BOOST_TEST_CASE(&check_iterator_range_operator<iterator_range_test_detail::less_or_equal>)); - test->add(BOOST_TEST_CASE(&check_iterator_range_operator<iterator_range_test_detail::greater>)); - test->add(BOOST_TEST_CASE(&check_iterator_range_operator<iterator_range_test_detail::greater_or_equal>)); - test->add(BOOST_TEST_CASE(&check_iterator_range_operator<iterator_range_test_detail::equal_to>)); - test->add(BOOST_TEST_CASE(&check_iterator_range_operator<iterator_range_test_detail::not_equal_to>)); - test->add(BOOST_TEST_CASE(&iterator_range_test_detail::check_make_iterator_range_n)); - test->add(BOOST_TEST_CASE(&test_advance)); + ptr_iterator() {} + ptr_iterator(int *p) : boost::iterator_adaptor<ptr_iterator, int *>(p) {} +private: + typedef void iterator; // To throw off the SFINAE mechanism in iterator_range +}; - return test; +void test_sfinae() +{ + boost::iterator_range<ptr_iterator> r(ptr_iterator(0), ptr_iterator(0)); } // @@ -313,3 +310,21 @@ void check_reference_type() test_iter_range<veci_type>(a_vec); test_iter_range<veci_type const>(a_vec); } + +boost::unit_test::test_suite* init_unit_test_suite( int argc, char* argv[] ) +{ + boost::unit_test::test_suite* test = BOOST_TEST_SUITE( "Range Test Suite" ); + + test->add(BOOST_TEST_CASE(&check_iterator_range)); + test->add(BOOST_TEST_CASE(&check_iterator_range_operator<iterator_range_test_detail::less>)); + test->add(BOOST_TEST_CASE(&check_iterator_range_operator<iterator_range_test_detail::less_or_equal>)); + test->add(BOOST_TEST_CASE(&check_iterator_range_operator<iterator_range_test_detail::greater>)); + test->add(BOOST_TEST_CASE(&check_iterator_range_operator<iterator_range_test_detail::greater_or_equal>)); + test->add(BOOST_TEST_CASE(&check_iterator_range_operator<iterator_range_test_detail::equal_to>)); + test->add(BOOST_TEST_CASE(&check_iterator_range_operator<iterator_range_test_detail::not_equal_to>)); + test->add(BOOST_TEST_CASE(&iterator_range_test_detail::check_make_iterator_range_n)); + test->add(BOOST_TEST_CASE(&test_advance)); + + return test; +} + |