Boost logo

Boost :

From: Andy Little (andy_at_[hidden])
Date: 2004-04-03 06:18:31


"David Bergman" <davidb_at_[hidden]> wrote
> David A. wrote:
> > "Andy Little" <andy_at_[hidden]> writes:

[snip]

> > > Surely a trait is *part of the *definition* * of an *entity* in a
> > > wider sense.
> >
> > I think I just quite definitively disagreed with that
> > assertion already ;^)
>
> Would you disagree with Andy even if that "wider sense" was a GP concept?

I guess that David Abrahams is taking me to task on use of the word 'entity'
which is defined in the standard (3-3). I wont claim that I was using the
term in the sense it is defined there, though it fits. I tried this with the
much maligned basic string:

struct Dummy_traits{};
int main()
{
    // " definition of an entity "
    std::basic_string<char,Dummy_traits> str1;
}
I didnt get very far at least in VC7.1. (One could argue that Dummy_traits
is a policy rather than a trait, which seems to be becoming the consensus on
this thread.)

> I agree with Andy under that interpretation, a trait defines the local
> neighborhood of a concept and its models.

That phrase "a trait defines the local neighborhood of a concept and its
models.",sounds impressive, though I dont quite understand it. Is there more
detail on this? ( IMO Concepts Are the next big thing for C++. C++ evolved
from C on strong types. And the next generation of C++ will evolve based on
Concepts. But crucially I have a very vague notion of what they are.) A
concept requires enforcing constraints . Could it be that traits and
policies are inextricably linked with Concepts, providing some sort of
'building block' or modularity, scaleabiliy and so on.?

BTW replace the word 'traits' by 'features' and it makes more sense to me.
traits is a very weak word for anything ;-)

regards
Andy Little


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