diff --git a/iterator_adaptor_test.cpp b/iterator_adaptor_test.cpp index 0d09faf..a36fc7b 100644 --- a/iterator_adaptor_test.cpp +++ b/iterator_adaptor_test.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -55,8 +56,6 @@ struct my_iterator_tag : public std::random_access_iterator_tag { }; using boost::dummyT; -std::istream& operator>>(std::istream& is, dummyT&) { return is; } - struct my_iter_traits { typedef dummyT value_type; typedef dummyT* pointer; @@ -426,17 +425,24 @@ main() // check operator-> with a forward iterator { - my_iterator i = array; - assert((*i).m_x == i->foo()); + boost::forward_iterator_archetype forward_iter; + typedef boost::iterator_adaptor, + boost::default_iterator_policies, + dummyT, const dummyT&, const dummyT*, + std::forward_iterator_tag, std::ptrdiff_t> adaptor_type; + adaptor_type i(forward_iter); + if (0) // don't do this, just make sure it compiles + assert((*i).m_x == i->foo()); } // check operator-> with an input iterator { - typedef boost::iterator_adaptor, - boost::default_iterator_policies> adaptor_type; - std::istream_iterator input_iter(std::cin); + boost::input_iterator_archetype input_iter; + typedef boost::iterator_adaptor, + boost::default_iterator_policies, + dummyT, const dummyT&, const dummyT*, + std::input_iterator_tag, std::ptrdiff_t> adaptor_type; adaptor_type i(input_iter); - if (0) // don't do this (and hang the test waiting for input), - // just make sure it compiles + if (0) // don't do this, just make sure it compiles assert((*i).m_x == i->foo()); }