updated tag mechanism for iterators using Dave's idea

[SVN r612]
This commit is contained in:
Jeremy Siek
2002-10-24 15:45:01 +00:00
parent c4f60fd24b
commit 560c48fe7a
5 changed files with 41 additions and 29 deletions

View File

@@ -8,14 +8,16 @@ int main()
{
{
typedef boost::reverse_iterator<int*, int, int&, int*,
boost::mutable_lvalue_iterator_tag, boost::random_access_traversal_tag, std::ptrdiff_t> rev_iter;
boost::iterator_tag<boost::mutable_lvalue_iterator_tag, boost::random_access_traversal_tag>,
std::ptrdiff_t> rev_iter;
boost::function_requires< boost_concepts::MutableLvalueIteratorConcept<rev_iter> >();
boost::function_requires< boost_concepts::RandomAccessTraversalConcept<rev_iter> >();
boost::function_requires< boost::RandomAccessIteratorConcept<rev_iter> >();
}
{
typedef boost::reverse_iterator<std::list<int>::const_iterator, int, const int&, const int*,
boost::constant_lvalue_iterator_tag, boost::bidirectional_traversal_tag, std::ptrdiff_t> rev_iter;
boost::iterator_tag<boost::constant_lvalue_iterator_tag, boost::bidirectional_traversal_tag>
, std::ptrdiff_t> rev_iter;
boost::function_requires< boost_concepts::ConstantLvalueIteratorConcept<rev_iter> >();
boost::function_requires< boost_concepts::BidirectionalTraversalConcept<rev_iter> >();
boost::function_requires< boost::BidirectionalIteratorConcept<rev_iter> >();