$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Thorsten Ottosen (nesotto_at_[hidden])
Date: 2004-09-03 14:56:45
"David Abrahams" <dave_at_[hidden]> wrote in message news:uhdqfqq3e.fsf_at_boost-consulting.com...
| Thorsten Ottosen <nesotto_at_[hidden]> writes:
| > | No, you have to say boost::range::begin(col). Otherwise they could
| > | make a.begin() valid but begin(a) invalid, and that would break
| > | boost::range::begin.
| >
| > I don't like this circular dependency on the concepts: Range has a special meaning
| > if the argument is a Collection
|
| ?? special meaning ??
You have to be more explicit if I should have a chance understanding what you're saying.
Please make a full example of how you want to document eg. Single Pass Range.
| > | What do primary templates have to do with this?
| >
| > it is the behavior of the primary template that makes coillections act as Ranges.
|
| What primary template?
all. primary function templates and primary metafunctions. they all assume a Collection argument.
| > boost\libs\range\doc\external_concepts.html
| >
| > described the idea of external and internal versions of concept, roughly correponding to
| > whether functions are free-standing or members.
|
| Eeew!
you probably glad I gave up the idea then.
| > In that terminology, we could say
| >
| > 1. Collection would be a refinement of InternalRange
| > 2. ExternalRange will, by definition, work with all corresponding InternalRange
|
| Except that if it relies on ADL, it's not "by definition" because an
| unrelated begin() with the wrong semantics could be defined.
true. currently there is no use of ADL.
Thorsten