Boost logo

Boost :

From: Brian McNamara (lorgon_at_[hidden])
Date: 2003-10-06 13:25:32


On Mon, Oct 06, 2003 at 07:36:22AM -0400, David Abrahams wrote:
> Second, even if we use Brian's scheme, nesting all of these things
> still has an efficiency impact, even though they're templates.
> Furthermore it requires the syntactically heavy template keyword in
> dependent contexts.

These are both true (I should have owned up to these limitations in my
previous message).

> The insistence that everything needs to be grouped together is the
> same as insisting that all concept requirements on regular classes
> must be expressed as member functions and not as free functions.

I disagree with this. The concepts (and traits) themselves are still
"extrinsic". The only thing the "grouping" does is say "hey, since the
Container concept is already known and fixed, we provide a convenient
way to access container traits uniformly here in this namespace (or
class template, or however it gets implemented). One "group" which
contains all of the individual traits as members is conceptually easier
to grok than two dozen individual traits entities.

Grouping does _not_ hinder the overall design flexibility (e.g., I can
still make a FooContainer work with container_traits in a completely
post-hoc fashion (using template specialization, rather than changing
the existing FooContainer)).

I see Mat has started a new thread topic ("Beyond Objects"), and it's
probably wise to take the continuation of this discussion there.

-- 
-Brian McNamara (lorgon_at_[hidden])

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