
"David Abrahams" <dave@boost-consulting.com> wrote in message news:uptaqlaqz.fsf@boost-consulting.com...
"Gennadiy Rozental" <gennadiy.rozental@thomson.com> writes:
A trait is a part of the definition of an entity.
That's right.
Absolutely not. A key trait of traits is that they're non-intrusive. They create an association with that can be defined *after* the type argument is defined. See http://www.boost.org/more/generic_programming.html#traits
I do undersand that. But I still believe that trait specification is part of definition. That is why I think that the best place for it is right after "real" type definition. For example, for Solaris 4.2 compiler I am frequently using construct like: struct myType{}; template<> is_pointer<myType*> { enum {value = true; } }; temaplte<> iterator_traits<myType*> { ... }; Gennadiy.