Anyone that's done a lot of programming using templates knows that the Boost's call traits library is absolutely essential. My question is, do you think that it is essential enough to warrant the use of a macro?
#define VALUE(T) boost::call_traits<T>::value_type
And similar for REF, CONST_REF, and PARAM.
Obviously my concern here is the use of macros due to their general evilness, and the use of such potentially common identifiers does no good for namespace pollution.
The next best solution in my opinion is to do the typedefs within your class, but the obvious disadvantage to this method is that it takes an awful lot of typing.
Is there anyone here that has done any large scale C++ development that could shed some light on their practices in this regard?
Thanks in advance.