
On 03/07/11 07:21, Edward Diener wrote:
You have made a very good point.
My intention, evidently misguided, was to put the generated metafunctions in the boost::tti namespace to avoid polluting the global namespace. But I see now that I should not have added a namespace at all and the end-user could then use the macros in whatever namespace he wants in order to avoid ODR violations, and/or just use the complicated macro form to create a unique name for the metafunction. Actually, of course, that still could be done, but a full metafuncion name of 'anamespace::boost::tti::has_type_mytype' is more gruesome than 'anamespace::has_type_mytype'.
Thanks for pointing this out.
When i developed the very similar code that you have now, I purposely made the macro not generate namespace around. I think that is what BOOST_MPL_HAS_XXX does anyway. Let the user call the macro in the namespace of its choice.