
"David Bergman" <davidb@home.se> wrote
David A. wrote:
"Andy Little" <andy@servocomm.freeserve.co.uk> 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