
At Mon, 11 Oct 2010 10:20:33 -0600, Belcourt, Kenneth wrote:
On Oct 11, 2010, at 6:54 AM, Dave Abrahams wrote:
On Oct 11, 2010, at 6:42 AM, "Stewart, Robert" <Robert.Stewart@sig.com> wrote:
If all new libraries use lib_detail rather than detail, the problem just shifts, unless you mean <lib>_detail, where "<lib>" is replaced by the library name. Still, as I've shown, that simply mixes paradigms making it a little more surprising, I should think. If we can establish that pattern as desirable, then new libraries can adopt it and it will be expected, of course.
Don't forget you can always use locally-defined namespace aliases, e.g. namespace brd = boost::ratios::detail defined within boost::ratios, to avoid such collisions.
I haven't been following this discussion closely but is there any way to use namespaces for version control along the lines of what Stroupstrup mentioned in D&E? It's been quite a while since I looked at it but perhaps with suitable modification it could help address some of these concerns.
I think we have some new feature in C++0x that makes it “more possible.” Oh, yeah: http://www2.research.att.com/~bs/C++0xFAQ.html#inline-namespace I take this as an indicator that what we have in C++03 isn't quite optimal, but maybe we can do something adequate. -- Dave Abrahams BoostPro Computing http://www.boostpro.com