summaryrefslogtreecommitdiff
path: root/libs/range/test
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2015-04-08 03:09:47 +0000
committer <>2015-05-05 14:37:32 +0000
commitf2541bb90af059680aa7036f315f052175999355 (patch)
treea5b214744b256f07e1dc2bd7273035a7808c659f /libs/range/test
parented232fdd34968697a68783b3195b1da4226915b5 (diff)
downloadboost-tarball-master.tar.gz
Imported from /home/lorry/working-area/delta_boost-tarball/boost_1_58_0.tar.bz2.HEADboost_1_58_0master
Diffstat (limited to 'libs/range/test')
-rw-r--r--libs/range/test/iterator_range.cpp41
1 files changed, 28 insertions, 13 deletions
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;
+}
+