
Nathan Ridge wrote:
My concern is very simple:
The page http://www.boost.org/doc/libs/1_51_0/libs/range/doc/html/range/concepts/sing... is crystal clear. It says that any SinglePassRange must implement the expression boost::begin(a) where a is a model of a SinglePassRange.
This is not actually a requirement on any model of a SinglePassRange but rather a requirement on boost::begin. But boost::begin is not supplied by the user! This documentation doesn't tell me what operation the type argument has to support in order to be used as argument to a range. It's just non-sensical and therefore confusing. There is nothing on this page which would indicate to me that something like <vector> would satisify the concept. The page is does not document a "concept" in the C++ manner.
It is common practice in Boost libraries for a concept to be associated with two sets of interfaces: ...
I confess I didn't understand any of this. It doesn't seem to address my (simple?) observation: There is no way to read the documentation of SinglePassRange concept and know whether some specific type will work with a range algorithm. Robert Ramey