2002-10-23 22:57:24 +00:00
|
|
|
#include <boost/iterator/iterator_adaptors.hpp>
|
|
|
|
#include <boost/iterator/iterator_concepts.hpp>
|
|
|
|
#include <boost/concept_check.hpp>
|
|
|
|
#include <boost/cstdlib.hpp>
|
|
|
|
#include <list>
|
|
|
|
|
|
|
|
int main()
|
|
|
|
{
|
|
|
|
{
|
2002-11-22 08:06:26 +00:00
|
|
|
typedef boost::reverse_iterator<int*> rev_iter;
|
|
|
|
typedef boost::reverse_iterator<int const*> c_rev_iter;
|
|
|
|
|
2002-10-23 22:57:24 +00:00
|
|
|
boost::function_requires< boost_concepts::MutableLvalueIteratorConcept<rev_iter> >();
|
|
|
|
boost::function_requires< boost_concepts::RandomAccessTraversalConcept<rev_iter> >();
|
|
|
|
boost::function_requires< boost::RandomAccessIteratorConcept<rev_iter> >();
|
2002-11-22 08:06:26 +00:00
|
|
|
boost::function_requires< boost_concepts::InteroperableConcept<rev_iter, c_rev_iter> >();
|
2002-10-23 22:57:24 +00:00
|
|
|
}
|
|
|
|
{
|
2002-11-22 08:06:26 +00:00
|
|
|
typedef boost::reverse_iterator<std::list<int>::iterator> rev_iter;
|
|
|
|
typedef boost::reverse_iterator<std::list<int>::const_iterator> c_rev_iter;
|
|
|
|
|
|
|
|
boost::function_requires< boost_concepts::ConstantLvalueIteratorConcept<c_rev_iter> >();
|
|
|
|
boost::function_requires< boost_concepts::BidirectionalTraversalConcept<c_rev_iter> >();
|
|
|
|
boost::function_requires< boost::BidirectionalIteratorConcept<c_rev_iter> >();
|
|
|
|
boost::function_requires< boost_concepts::InteroperableConcept<rev_iter, c_rev_iter> >();
|
2002-10-23 22:57:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return boost::exit_success;
|
|
|
|
}
|