$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-users] Boost Concepts with iterators and ranges
From: Robert Ramey (ramey_at_[hidden])
Date: 2011-02-21 02:07:08
I've been experimenting with Boost Concepts in conjunction with Boost Range 
and by implication
boost iterators.  I have a few questions from the documentation:
a) I see  BOOST_CONCEPT_USAGE described in some detail in the section
Creating Concept Checking Classes. But in the section titled "Reference" I 
only
find in the subsection "macros" BOOST_CONCEPT_ASSERT and 
BOOST_CONCEPT_REQUIRES.
Is BOOST_CONCEPT_USAGE meant to be used?
b) "Deprecated Concept Checking Classes"
"For each of the concepts documented here, the library includes an identical 
concept checking class whose name ends in "Concept" For example, in addition 
to RandomAccessIterator, the library defines a RandomAccessIteratorConcept 
class template."
It sounds like this means that I shouldn't expect to find 
"WritableIteratorConcept" but in fact in "interator_concepts.hpp" find just 
that.  I'm assuming that's an oversight.
c) except for the above, the Range library uses things like
ForwardTraversal and ForwardTraversalConcept
 the iterators library uses ForwardTraversal only.
d) the iterators concepts are in the root namespace boost_concepts while the 
range
concepts are in the root namespace boost.
e) boost/range/concepts.hpp includes the file 
boost/iterator/iterator_concepts.hpp
All this makes it very hard to keep all this straight in one's head. Is 
there any
possibility that all this could be made simpler to follow by some 
combination
of documentation improvements and/or namespace coordination?
Robert Ramey