On Tue, Nov 4, 2014 at 3:28 PM, Adrien Destugues <pulkomandy@xxxxxxxxx> wrote: > Imagine some app is compiled using BToolbar today (without BPrivate). > Now it has references to the BToolbar class. It links it statically so > it runs and there is no problem. > > We continue tweaking BToolbar and chanfging it a bit in ways that break > binary compatibility. The app isn't affected because it still links its > own version and doesn't see the new one in libshared (which is static > precisely to allow this) > > But someday we move BToolbar to libbe. The app links against that, so it > is now confused because there are two different BToolbar classes around. > > To avoid this, we put everything in libshared into the BPrivate > namespace. We remove that at the same time as we move things into libbe. > This makes sure old apps compiled against libshared don't hit a conflict > with the final version of the class published in libbe. > > Finally, the "using namespace" makes it possible to recompile the app to > use the final version of the class with no changes to its sourcecode. > Ah, makes a lot of sense. I'll submit a patch to fix that next chance I get. -Augustin