visibility-decoration.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114671 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/string b/include/string
index 4e6d7cd..47aed10 100644
--- a/include/string
+++ b/include/string
@@ -442,7 +442,7 @@
 // fpos
 
 template <class _StateT>
-class fpos
+class _LIBCPP_VISIBLE fpos
 {
 private:
     _StateT __st_;
@@ -628,7 +628,7 @@
 // char_traits<wchar_t>
 
 template <>
-struct char_traits<wchar_t>
+struct _LIBCPP_VISIBLE char_traits<wchar_t>
 {
     typedef wchar_t   char_type;
     typedef wint_t    int_type;
@@ -665,7 +665,7 @@
 #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
 
 template <>
-struct char_traits<char16_t>
+struct _LIBCPP_VISIBLE char_traits<char16_t>
 {
     typedef char16_t       char_type;
     typedef uint_least16_t int_type;
@@ -771,7 +771,7 @@
 }
 
 template <>
-struct char_traits<char32_t>
+struct _LIBCPP_VISIBLE char_traits<char32_t>
 {
     typedef char32_t       char_type;
     typedef uint_least32_t int_type;
@@ -1058,6 +1058,7 @@
 #endif
     _LIBCPP_INLINE_VISIBILITY basic_string& operator=(const_pointer __s)         {return assign(__s);}
     basic_string& operator=(value_type __c);
+    _LIBCPP_INLINE_VISIBILITY
     basic_string& operator=(initializer_list<value_type> __il) {return assign(__il.begin(), __il.size());}
 
 #ifndef _LIBCPP_DEBUG
@@ -1092,6 +1093,7 @@
     _LIBCPP_INLINE_VISIBILITY void resize(size_type __n) {resize(__n, value_type());}
 
     void reserve(size_type res_arg = 0);
+    _LIBCPP_INLINE_VISIBILITY
     void shrink_to_fit() {reserve();}
     void clear();
     _LIBCPP_INLINE_VISIBILITY bool empty() const {return size() == 0;}
@@ -1127,6 +1129,7 @@
             basic_string&
         >::type
         append(_ForwardIterator __first, _ForwardIterator __last);
+    _LIBCPP_INLINE_VISIBILITY
     basic_string& append(initializer_list<value_type> __il) {return append(__il.begin(), __il.size());}
 
     void push_back(value_type __c);
@@ -1156,6 +1159,7 @@
             basic_string&
         >::type
         assign(_ForwardIterator __first, _ForwardIterator __last);
+    _LIBCPP_INLINE_VISIBILITY
     basic_string& assign(initializer_list<value_type> __il) {return assign(__il.begin(), __il.size());}
 
     basic_string& insert(size_type __pos1, const basic_string& __str);
@@ -1180,6 +1184,7 @@
             iterator
         >::type
         insert(const_iterator __pos, _ForwardIterator __first, _ForwardIterator __last);
+    _LIBCPP_INLINE_VISIBILITY
     iterator insert(const_iterator __pos, initializer_list<value_type> __il)
                     {return insert(__pos, __il.begin(), __il.end());}
 
@@ -1203,6 +1208,7 @@
             basic_string&
         >::type
         replace(iterator __i1, iterator __i2, _InputIterator __j1, _InputIterator __j2);
+    _LIBCPP_INLINE_VISIBILITY
     basic_string& replace(iterator __i1, iterator __i2, initializer_list<value_type> __il)
         {return replace(__i1, __i2, __il.begin(), __il.end());}
 
@@ -3551,7 +3557,7 @@
                    basic_string<_CharT, _Traits, _Allocator>::npos;
 
 template<class _CharT, class _Traits, class _Allocator>
-struct hash<basic_string<_CharT, _Traits, _Allocator> >
+struct _LIBCPP_VISIBLE hash<basic_string<_CharT, _Traits, _Allocator> >
     : public unary_function<basic_string<_CharT, _Traits, _Allocator>, size_t>
 {
     size_t