On Saturday 06 June 2015 06:12:21 Rob Stewart wrote:
On June 6, 2015 5:07:40 AM EDT, Andrey Semashev
wrote: On Friday 05 June 2015 20:14:08 Rob Stewart wrote:
I don't think BOOST_ATOMIC_HEADER, BOOST_ATOMIC_NAMESPACE, BOOST_ATOMIC_IS_STD, etc. would be likely to
clash.
Those names are in the namespace of Boost.Atomic by the current conventions. They may not be used now, but can be used later. Please, don't do it.
Each of the affected libraries can consider this set of names as belonging to the library despite being defined by Config. They also don't seem likely, though I haven't checked, to be used currently. For those reasons I don't see the problem.
I disagree. The macros, as they are currently proposed, are part of Boost.Config. Otherwise they should be proposed to each library separately and then, yes, they would have names according to each library's namespace. Whether the libraries are used or not is irrelevant, the namespaces are still reserved.
The proposed unique tag, CPP, is meaningless. It may create a namespace not already used, but it also doesn't relate to the function of the macros. Since Boost.Config doesn't have its own tag, it seemed reasonable that these not have a tag, which makes them extensions of the affected libraries' macros.
I suggested to change the tag to CXX in the pull request, to follow the current practice in Boost.Config. It seems a reasonable tag to me as these macros deal with C++ implementation capabilities (or rather STL capabilities - which could be used as an alternative tag). I don't mind if a different tag is chosen. I would just like the names to be still organized and not clash with other libraries namespaces.