I am experimenting with putting visibility-default attributes on all struct/classes in libc++.  This checkin decorates only basic_string and vector as an experiment, and for review by those in this audience that might know more about visibilty than I do.  If I get no negative feedback on this procedure I will begin to decorate the entire library in this way.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113590 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/vector b/include/vector
index 7441cd0..f985a0e 100644
--- a/include/vector
+++ b/include/vector
@@ -419,7 +419,7 @@
 }
 
 template <class _Tp, class _Allocator = allocator<_Tp> >
-class vector
+class _LIBCPP_VISIBLE vector
     : private __vector_base<_Tp, _Allocator>
 {
 private:
@@ -1682,7 +1682,7 @@
 template <class _Allocator> struct hash<vector<bool, _Allocator> >;
 
 template <class _Allocator>
-class vector<bool, _Allocator>
+class _LIBCPP_VISIBLE vector<bool, _Allocator>
     : private __vector_base_common<true>
 {
 public: