http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50745
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-10-16 13:51:57 UTC --- I understand the benefit of hiding internal implementation details, but your proposal seems to imply that you could alter the visibility of everything in namespace std e.g. std::string would have hidden visibility. What's the point of the standard library if you can't use any of it outside libstdc++.so ?