Boost logo

Boost :

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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk