#include #include #include #include #include #ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION namespace boost { namespace detail { template<> struct iterator_traits : ptr_iter_traits {}; template<> struct iterator_traits : ptr_iter_traits {}; }} #endif int main() { { typedef boost::reverse_iterator rev_iter; typedef boost::reverse_iterator c_rev_iter; boost::function_requires< boost_concepts::WritableLvalueIteratorConcept >(); boost::function_requires< boost_concepts::RandomAccessTraversalConcept >(); boost::function_requires< boost::RandomAccessIteratorConcept >(); boost::function_requires< boost_concepts::InteroperableConcept >(); } { typedef boost::reverse_iterator::iterator> rev_iter; typedef boost::reverse_iterator::const_iterator> c_rev_iter; boost::function_requires< boost_concepts::ReadableLvalueIteratorConcept >(); boost::function_requires< boost_concepts::BidirectionalTraversalConcept >(); boost::function_requires< boost::BidirectionalIteratorConcept >(); boost::function_requires< boost_concepts::InteroperableConcept >(); } return boost::exit_success; }