Agustín K-ballo Bergé
Have a look at N1344, Namespaces and Library Versioning, where it explains that using `using` it's not an option; and at N2535, Namespace Association ("inline namespace"), where inline namespaces are proposed as a viable option to solve the issues raised in N1344.
While those papers don't directly state it's not allowed, they do mention that struct MyClass { ... }; namespace std { template<> class vector<MyClass> { ... }; } must be well-formed. The standardese for this is C++03 17.4.3.1/1 and C++11 17.6.4.2.1. In practice I don't see how this can work if the library implements any extensions, unless those are explicitly tagged and checked every time. I wonder why this thing is even allowed, it should be limited to hash and other extension points. In which case should the BSL model, if Boost is willing to support it, be considered a defect?