diff --git a/example/same_fringe.cpp b/example/same_fringe.cpp index 52b9055..98d52bc 100644 --- a/example/same_fringe.cpp +++ b/example/same_fringe.cpp @@ -103,8 +103,8 @@ int main() traverse(left_d,out); }); std::cout << "left tree from d:\n"; - std::copy(begin(left_d_reader), - end(left_d_reader), + std::copy(std::begin(left_d_reader), + std::end(left_d_reader), std::ostream_iterator(std::cout, " ")); std::cout << std::endl; @@ -113,8 +113,8 @@ int main() traverse(right_b,out); }); std::cout << "right tree from b:\n"; - std::copy(begin(right_b_reader), - end(right_b_reader), + std::copy(std::begin(right_b_reader), + std::end(right_b_reader), std::ostream_iterator(std::cout, " ")); std::cout << std::endl; @@ -123,8 +123,8 @@ int main() traverse(right_x,out); }); std::cout << "right tree from x:\n"; - std::copy(begin(right_x_reader), - end(right_x_reader), + std::copy(std::begin(right_x_reader), + std::end(right_x_reader), std::ostream_iterator(std::cout, " ")); std::cout << std::endl; } @@ -146,9 +146,9 @@ int main() std::cout << "left tree from d == right tree from b? " << std::boolalpha - << std::equal(begin(left_d_reader), - end(left_d_reader), - begin(right_b_reader)) + << std::equal(std::begin(left_d_reader), + std::end(left_d_reader), + std::begin(right_b_reader)) << std::endl; } } @@ -169,9 +169,9 @@ int main() std::cout << "left tree from d == right tree from x? " << std::boolalpha - << std::equal(begin(left_d_reader), - end(left_d_reader), - begin(right_x_reader)) + << std::equal(std::begin(left_d_reader), + std::end(left_d_reader), + std::begin(right_x_reader)) << std::endl; } } diff --git a/include/boost/coroutine2/detail/pull_coroutine.hpp b/include/boost/coroutine2/detail/pull_coroutine.hpp index 0bb8ea9..96d10d6 100644 --- a/include/boost/coroutine2/detail/pull_coroutine.hpp +++ b/include/boost/coroutine2/detail/pull_coroutine.hpp @@ -294,6 +294,22 @@ end( pull_coroutine< T > &) { }}} +namespace std { + +template< typename T > +typename boost::coroutines2::detail::pull_coroutine< T >::iterator +begin( boost::coroutines2::detail::pull_coroutine< T > & c) { + return boost::coroutines2::detail::begin( c); +} + +template< typename T > +typename boost::coroutines2::detail::pull_coroutine< T >::iterator +end( boost::coroutines2::detail::pull_coroutine< T > & c) { + return boost::coroutines2::detail::end( c); +} + +} + #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_SUFFIX #endif diff --git a/test/test_coroutine.cpp b/test/test_coroutine.cpp index 0a9da6a..d4fbd8b 100644 --- a/test/test_coroutine.cpp +++ b/test/test_coroutine.cpp @@ -518,14 +518,11 @@ void test_exceptions() void test_input_iterator() { { - using std::begin; - using std::end; - std::vector< int > vec; coro::coroutine< int >::pull_type coro( f16); - coro::coroutine< int >::pull_type::iterator e = end( coro); + coro::coroutine< int >::pull_type::iterator e = std::end( coro); for ( - coro::coroutine< int >::pull_type::iterator i = begin( coro); + coro::coroutine< int >::pull_type::iterator i = std::begin( coro); i != e; ++i) { vec.push_back( * i); } BOOST_CHECK_EQUAL( ( std::size_t)5, vec.size() );