Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-04-03 13:58:37


"David Bergman" <davidb_at_[hidden]> writes:

>>
>> You may argue that by making additional specification we are
>> essentially defining new model: House with doors and windows.
>> But I do not see why should we? smart_ptr is still smart_ptr
>> even though you added statement that it is dereferenceable.
>> It was dereferenceble by definition, you just did not have
>> means to ask it before.
>
> This extra-typical "adornments" are part of what I would call a Feature
> Model. So, those stated relations constitute part of the Concept's
> definition. This is what Andy mentioned as well, and I think a few of us see
> here, the traits being used to define the Concept.

Yes, associated types are an essential element of Concepts, and the
associated types and a method to reach them (often traits) is part of
the Concept definition. C++ types, however, are not Concepts, and
trait specializations are not part of the definitions of those C++
types.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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