
On 10/22/2012 7:52 PM, Edward Diener wrote:
On 10/22/2012 6:23 PM, Vicente J. Botet Escriba wrote:
You are right, but how we can ensure that two independent Boost libraries don't deliver the same macro?
I agree in general. We need something following BOOST_ in every library which is distinguishable from another library when macros are used. As an example the preprocessor library starts all macros with BOOST_PP_. My TTI library starts all macros with BOOST_TTI_. Not doing something like this will create a nightmare, which can only be relieved by very clever use of #define and #undef, if there occur the same names following BOOST_ in two libraries.
Not that I'm advocating this, but one could just include the entire set of Boost libraries all at once in a regression test to detect conflicting definitions. Personally, I think the boost namespace is too full already. In header declarations, you can't have using boost::abc, so you end up qualifying everything as with boost::abc::xyz which is really tedious and only "special" libraries get a plain boost::xyz. I'd rather just have abc::xyz which I think results in better modularization. In that sense, aside from a community and vetting process, Boost becomes a library distribution mechanism rather than a supposedly coherent framework. Regards, Paul Mensonides