
"Gennadiy Rozental" <gennadiy.rozental@thomson.com> writes:
"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.
Not if you want to describe the properties of some 3rd-party class: #include <3rd_party/smart_ptr.hpp> template <class T> struct is_dereferenceable<third_party::smart_ptr<T> > : mpl::true {}; -- Dave Abrahams Boost Consulting www.boost-consulting.com