Parcourir la source

Cleanup: move visibility/linkage attributes to the first declaration.

This change moves visibility attributes from out-of-class method
definitions to in-class declaration. This is needed for a switch to
attribute((internal_linkage)) (see http://reviews.llvm.org/D13925)
which can only appear on the first declaration.

This change does not touch istream/ostream/streambuf. They are
handled separately in http://reviews.llvm.org/D14409.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@252385 91177308-0d34-0410-b5e6-96231b3b80d8
Evgeniy Stepanov il y a 9 ans
Parent
commit
a3b25f81d1
15 fichiers modifiés avec 439 ajouts et 203 suppressions
  1. 16 8
      include/__hash_table
  2. 2 1
      include/__mutex_base
  3. 10 5
      include/__split_buffer
  4. 82 41
      include/bitset
  5. 14 7
      include/condition_variable
  6. 32 16
      include/deque
  7. 18 9
      include/future
  8. 6 3
      include/locale
  9. 62 36
      include/memory
  10. 8 7
      include/random
  11. 2 1
      include/regex
  12. 32 16
      include/string
  13. 2 1
      include/thread
  14. 147 49
      include/valarray
  15. 6 3
      include/vector

+ 16 - 8
include/__hash_table

@@ -836,6 +836,7 @@ public:
     typedef __hash_local_iterator<__node_pointer>             local_iterator;
     typedef __hash_local_iterator<__node_pointer>             local_iterator;
     typedef __hash_const_local_iterator<__node_pointer>       const_local_iterator;
     typedef __hash_const_local_iterator<__node_pointer>       const_local_iterator;
 
 
+    _LIBCPP_INLINE_VISIBILITY
     __hash_table()
     __hash_table()
         _NOEXCEPT_(
         _NOEXCEPT_(
             is_nothrow_default_constructible<__bucket_list>::value &&
             is_nothrow_default_constructible<__bucket_list>::value &&
@@ -843,6 +844,7 @@ public:
             is_nothrow_default_constructible<__node_allocator>::value &&
             is_nothrow_default_constructible<__node_allocator>::value &&
             is_nothrow_default_constructible<hasher>::value &&
             is_nothrow_default_constructible<hasher>::value &&
             is_nothrow_default_constructible<key_equal>::value);
             is_nothrow_default_constructible<key_equal>::value);
+    _LIBCPP_INLINE_VISIBILITY
     __hash_table(const hasher& __hf, const key_equal& __eql);
     __hash_table(const hasher& __hf, const key_equal& __eql);
     __hash_table(const hasher& __hf, const key_equal& __eql,
     __hash_table(const hasher& __hf, const key_equal& __eql,
                  const allocator_type& __a);
                  const allocator_type& __a);
@@ -863,6 +865,7 @@ public:
 
 
     __hash_table& operator=(const __hash_table& __u);
     __hash_table& operator=(const __hash_table& __u);
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    _LIBCPP_INLINE_VISIBILITY
     __hash_table& operator=(__hash_table&& __u)
     __hash_table& operator=(__hash_table&& __u)
         _NOEXCEPT_(
         _NOEXCEPT_(
             __node_traits::propagate_on_container_move_assignment::value &&
             __node_traits::propagate_on_container_move_assignment::value &&
@@ -934,9 +937,13 @@ public:
         return __bucket_list_.get_deleter().size();
         return __bucket_list_.get_deleter().size();
     }
     }
 
 
+    _LIBCPP_INLINE_VISIBILITY
     iterator       begin() _NOEXCEPT;
     iterator       begin() _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     iterator       end() _NOEXCEPT;
     iterator       end() _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     const_iterator begin() const _NOEXCEPT;
     const_iterator begin() const _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     const_iterator end() const _NOEXCEPT;
     const_iterator end() const _NOEXCEPT;
 
 
     template <class _Key>
     template <class _Key>
@@ -965,6 +972,7 @@ public:
     __node_holder remove(const_iterator __p) _NOEXCEPT;
     __node_holder remove(const_iterator __p) _NOEXCEPT;
 
 
     template <class _Key>
     template <class _Key>
+        _LIBCPP_INLINE_VISIBILITY
         size_type __count_unique(const _Key& __k) const;
         size_type __count_unique(const _Key& __k) const;
     template <class _Key>
     template <class _Key>
         size_type __count_multi(const _Key& __k) const;
         size_type __count_multi(const _Key& __k) const;
@@ -1130,7 +1138,7 @@ private:
 };
 };
 
 
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table()
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table()
     _NOEXCEPT_(
     _NOEXCEPT_(
         is_nothrow_default_constructible<__bucket_list>::value &&
         is_nothrow_default_constructible<__bucket_list>::value &&
@@ -1143,7 +1151,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table()
 }
 }
 
 
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const hasher& __hf,
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const hasher& __hf,
                                                        const key_equal& __eql)
                                                        const key_equal& __eql)
     : __bucket_list_(nullptr, __bucket_list_deleter()),
     : __bucket_list_(nullptr, __bucket_list_deleter()),
@@ -1410,7 +1418,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__move_assign(
 }
 }
 
 
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 __hash_table<_Tp, _Hash, _Equal, _Alloc>&
 __hash_table<_Tp, _Hash, _Equal, _Alloc>&
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::operator=(__hash_table&& __u)
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::operator=(__hash_table&& __u)
     _NOEXCEPT_(
     _NOEXCEPT_(
@@ -1495,7 +1503,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__assign_multi(_InputIterator __first,
 }
 }
 
 
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
 typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() _NOEXCEPT
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() _NOEXCEPT
 {
 {
@@ -1507,7 +1515,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() _NOEXCEPT
 }
 }
 
 
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
 typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::end() _NOEXCEPT
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::end() _NOEXCEPT
 {
 {
@@ -1519,7 +1527,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::end() _NOEXCEPT
 }
 }
 
 
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator
 typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() const _NOEXCEPT
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() const _NOEXCEPT
 {
 {
@@ -1531,7 +1539,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() const _NOEXCEPT
 }
 }
 
 
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator
 typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::end() const _NOEXCEPT
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::end() const _NOEXCEPT
 {
 {
@@ -2256,7 +2264,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::remove(const_iterator __p) _NOEXCEPT
 
 
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
 template <class _Key>
 template <class _Key>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type
 typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::__count_unique(const _Key& __k) const
 __hash_table<_Tp, _Hash, _Equal, _Alloc>::__count_unique(const _Key& __k) const
 {
 {

+ 2 - 1
include/__mutex_base

@@ -308,6 +308,7 @@ public:
 
 
     template <class _Rep, class _Period, class _Predicate>
     template <class _Rep, class _Period, class _Predicate>
         bool
         bool
+        _LIBCPP_INLINE_VISIBILITY
         wait_for(unique_lock<mutex>& __lk,
         wait_for(unique_lock<mutex>& __lk,
                  const chrono::duration<_Rep, _Period>& __d,
                  const chrono::duration<_Rep, _Period>& __d,
                  _Predicate __pred);
                  _Predicate __pred);
@@ -392,7 +393,7 @@ condition_variable::wait_for(unique_lock<mutex>& __lk,
 }
 }
 
 
 template <class _Rep, class _Period, class _Predicate>
 template <class _Rep, class _Period, class _Predicate>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bool
 bool
 condition_variable::wait_for(unique_lock<mutex>& __lk,
 condition_variable::wait_for(unique_lock<mutex>& __lk,
                              const chrono::duration<_Rep, _Period>& __d,
                              const chrono::duration<_Rep, _Period>& __d,

+ 10 - 5
include/__split_buffer

@@ -56,9 +56,12 @@ public:
     _LIBCPP_INLINE_VISIBILITY pointer&              __end_cap() _NOEXCEPT       {return __end_cap_.first();}
     _LIBCPP_INLINE_VISIBILITY pointer&              __end_cap() _NOEXCEPT       {return __end_cap_.first();}
     _LIBCPP_INLINE_VISIBILITY const pointer&        __end_cap() const _NOEXCEPT {return __end_cap_.first();}
     _LIBCPP_INLINE_VISIBILITY const pointer&        __end_cap() const _NOEXCEPT {return __end_cap_.first();}
 
 
+    _LIBCPP_INLINE_VISIBILITY
     __split_buffer()
     __split_buffer()
         _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);
         _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);
+    _LIBCPP_INLINE_VISIBILITY
     explicit __split_buffer(__alloc_rr& __a);
     explicit __split_buffer(__alloc_rr& __a);
+    _LIBCPP_INLINE_VISIBILITY
     explicit __split_buffer(const __alloc_rr& __a);
     explicit __split_buffer(const __alloc_rr& __a);
     __split_buffer(size_type __cap, size_type __start, __alloc_rr& __a);
     __split_buffer(size_type __cap, size_type __start, __alloc_rr& __a);
     ~__split_buffer();
     ~__split_buffer();
@@ -128,7 +131,9 @@ public:
 
 
     _LIBCPP_INLINE_VISIBILITY void __destruct_at_begin(pointer __new_begin)
     _LIBCPP_INLINE_VISIBILITY void __destruct_at_begin(pointer __new_begin)
         {__destruct_at_begin(__new_begin, is_trivially_destructible<value_type>());}
         {__destruct_at_begin(__new_begin, is_trivially_destructible<value_type>());}
+        _LIBCPP_INLINE_VISIBILITY
         void __destruct_at_begin(pointer __new_begin, false_type);
         void __destruct_at_begin(pointer __new_begin, false_type);
+        _LIBCPP_INLINE_VISIBILITY
         void __destruct_at_begin(pointer __new_begin, true_type);
         void __destruct_at_begin(pointer __new_begin, true_type);
 
 
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -266,7 +271,7 @@ __split_buffer<_Tp, _Allocator>::__construct_at_end(_ForwardIterator __first, _F
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 __split_buffer<_Tp, _Allocator>::__destruct_at_begin(pointer __new_begin, false_type)
 __split_buffer<_Tp, _Allocator>::__destruct_at_begin(pointer __new_begin, false_type)
 {
 {
@@ -275,7 +280,7 @@ __split_buffer<_Tp, _Allocator>::__destruct_at_begin(pointer __new_begin, false_
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 __split_buffer<_Tp, _Allocator>::__destruct_at_begin(pointer __new_begin, true_type)
 __split_buffer<_Tp, _Allocator>::__destruct_at_begin(pointer __new_begin, true_type)
 {
 {
@@ -309,7 +314,7 @@ __split_buffer<_Tp, _Allocator>::__split_buffer(size_type __cap, size_type __sta
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 __split_buffer<_Tp, _Allocator>::__split_buffer()
 __split_buffer<_Tp, _Allocator>::__split_buffer()
     _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
     _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
     : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr)
     : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr)
@@ -317,14 +322,14 @@ __split_buffer<_Tp, _Allocator>::__split_buffer()
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 __split_buffer<_Tp, _Allocator>::__split_buffer(__alloc_rr& __a)
 __split_buffer<_Tp, _Allocator>::__split_buffer(__alloc_rr& __a)
     : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a)
     : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a)
 {
 {
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 __split_buffer<_Tp, _Allocator>::__split_buffer(const __alloc_rr& __a)
 __split_buffer<_Tp, _Allocator>::__split_buffer(const __alloc_rr& __a)
     : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a)
     : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a)
 {
 {

+ 82 - 41
include/bitset

@@ -168,7 +168,9 @@ protected:
     typedef __bit_iterator<__bitset, false>            iterator;
     typedef __bit_iterator<__bitset, false>            iterator;
     typedef __bit_iterator<__bitset, true>             const_iterator;
     typedef __bit_iterator<__bitset, true>             const_iterator;
 
 
+    _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR __bitset() _NOEXCEPT;
     _LIBCPP_CONSTEXPR __bitset() _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     explicit _LIBCPP_CONSTEXPR __bitset(unsigned long long __v) _NOEXCEPT;
     explicit _LIBCPP_CONSTEXPR __bitset(unsigned long long __v) _NOEXCEPT;
 
 
     _LIBCPP_INLINE_VISIBILITY reference __make_ref(size_t __pos) _NOEXCEPT
     _LIBCPP_INLINE_VISIBILITY reference __make_ref(size_t __pos) _NOEXCEPT
@@ -180,8 +182,11 @@ protected:
     _LIBCPP_INLINE_VISIBILITY const_iterator __make_iter(size_t __pos) const _NOEXCEPT
     _LIBCPP_INLINE_VISIBILITY const_iterator __make_iter(size_t __pos) const _NOEXCEPT
         {return const_iterator(__first_ + __pos / __bits_per_word, __pos % __bits_per_word);}
         {return const_iterator(__first_ + __pos / __bits_per_word, __pos % __bits_per_word);}
 
 
+    _LIBCPP_INLINE_VISIBILITY
     void operator&=(const __bitset& __v) _NOEXCEPT;
     void operator&=(const __bitset& __v) _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     void operator|=(const __bitset& __v) _NOEXCEPT;
     void operator|=(const __bitset& __v) _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     void operator^=(const __bitset& __v) _NOEXCEPT;
     void operator^=(const __bitset& __v) _NOEXCEPT;
 
 
     void flip() _NOEXCEPT;
     void flip() _NOEXCEPT;
@@ -192,6 +197,7 @@ protected:
 
 
     bool all() const _NOEXCEPT;
     bool all() const _NOEXCEPT;
     bool any() const _NOEXCEPT;
     bool any() const _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     size_t __hash_code() const _NOEXCEPT;
     size_t __hash_code() const _NOEXCEPT;
 private:
 private:
 #ifdef _LIBCPP_HAS_NO_CONSTEXPR
 #ifdef _LIBCPP_HAS_NO_CONSTEXPR
@@ -199,15 +205,18 @@ private:
     void __init(unsigned long long __v, true_type) _NOEXCEPT;
     void __init(unsigned long long __v, true_type) _NOEXCEPT;
 #endif  // _LIBCPP_HAS_NO_CONSTEXPR
 #endif  // _LIBCPP_HAS_NO_CONSTEXPR
     unsigned long to_ulong(false_type) const;
     unsigned long to_ulong(false_type) const;
+    _LIBCPP_INLINE_VISIBILITY
     unsigned long to_ulong(true_type) const;
     unsigned long to_ulong(true_type) const;
     unsigned long long to_ullong(false_type) const;
     unsigned long long to_ullong(false_type) const;
+    _LIBCPP_INLINE_VISIBILITY
     unsigned long long to_ullong(true_type) const;
     unsigned long long to_ullong(true_type) const;
+    _LIBCPP_INLINE_VISIBILITY
     unsigned long long to_ullong(true_type, false_type) const;
     unsigned long long to_ullong(true_type, false_type) const;
     unsigned long long to_ullong(true_type, true_type) const;
     unsigned long long to_ullong(true_type, true_type) const;
 };
 };
 
 
 template <size_t _N_words, size_t _Size>
 template <size_t _N_words, size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _LIBCPP_CONSTEXPR
 _LIBCPP_CONSTEXPR
 __bitset<_N_words, _Size>::__bitset() _NOEXCEPT
 __bitset<_N_words, _Size>::__bitset() _NOEXCEPT
 #ifndef _LIBCPP_HAS_NO_CONSTEXPR
 #ifndef _LIBCPP_HAS_NO_CONSTEXPR
@@ -245,7 +254,7 @@ __bitset<_N_words, _Size>::__init(unsigned long long __v, true_type) _NOEXCEPT
 #endif  // _LIBCPP_HAS_NO_CONSTEXPR
 #endif  // _LIBCPP_HAS_NO_CONSTEXPR
 
 
 template <size_t _N_words, size_t _Size>
 template <size_t _N_words, size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _LIBCPP_CONSTEXPR
 _LIBCPP_CONSTEXPR
 __bitset<_N_words, _Size>::__bitset(unsigned long long __v) _NOEXCEPT
 __bitset<_N_words, _Size>::__bitset(unsigned long long __v) _NOEXCEPT
 #ifndef _LIBCPP_HAS_NO_CONSTEXPR
 #ifndef _LIBCPP_HAS_NO_CONSTEXPR
@@ -264,7 +273,7 @@ __bitset<_N_words, _Size>::__bitset(unsigned long long __v) _NOEXCEPT
 }
 }
 
 
 template <size_t _N_words, size_t _Size>
 template <size_t _N_words, size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 __bitset<_N_words, _Size>::operator&=(const __bitset& __v) _NOEXCEPT
 __bitset<_N_words, _Size>::operator&=(const __bitset& __v) _NOEXCEPT
 {
 {
@@ -273,7 +282,7 @@ __bitset<_N_words, _Size>::operator&=(const __bitset& __v) _NOEXCEPT
 }
 }
 
 
 template <size_t _N_words, size_t _Size>
 template <size_t _N_words, size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 __bitset<_N_words, _Size>::operator|=(const __bitset& __v) _NOEXCEPT
 __bitset<_N_words, _Size>::operator|=(const __bitset& __v) _NOEXCEPT
 {
 {
@@ -282,7 +291,7 @@ __bitset<_N_words, _Size>::operator|=(const __bitset& __v) _NOEXCEPT
 }
 }
 
 
 template <size_t _N_words, size_t _Size>
 template <size_t _N_words, size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 __bitset<_N_words, _Size>::operator^=(const __bitset& __v) _NOEXCEPT
 __bitset<_N_words, _Size>::operator^=(const __bitset& __v) _NOEXCEPT
 {
 {
@@ -325,7 +334,7 @@ __bitset<_N_words, _Size>::to_ulong(false_type) const
 }
 }
 
 
 template <size_t _N_words, size_t _Size>
 template <size_t _N_words, size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 unsigned long
 unsigned long
 __bitset<_N_words, _Size>::to_ulong(true_type) const
 __bitset<_N_words, _Size>::to_ulong(true_type) const
 {
 {
@@ -348,7 +357,7 @@ __bitset<_N_words, _Size>::to_ullong(false_type) const
 }
 }
 
 
 template <size_t _N_words, size_t _Size>
 template <size_t _N_words, size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 unsigned long long
 unsigned long long
 __bitset<_N_words, _Size>::to_ullong(true_type) const
 __bitset<_N_words, _Size>::to_ullong(true_type) const
 {
 {
@@ -356,7 +365,7 @@ __bitset<_N_words, _Size>::to_ullong(true_type) const
 }
 }
 
 
 template <size_t _N_words, size_t _Size>
 template <size_t _N_words, size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 unsigned long long
 unsigned long long
 __bitset<_N_words, _Size>::to_ullong(true_type, false_type) const
 __bitset<_N_words, _Size>::to_ullong(true_type, false_type) const
 {
 {
@@ -414,7 +423,7 @@ __bitset<_N_words, _Size>::any() const _NOEXCEPT
 }
 }
 
 
 template <size_t _N_words, size_t _Size>
 template <size_t _N_words, size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 size_t
 size_t
 __bitset<_N_words, _Size>::__hash_code() const _NOEXCEPT
 __bitset<_N_words, _Size>::__hash_code() const _NOEXCEPT
 {
 {
@@ -450,7 +459,9 @@ protected:
     typedef __bit_iterator<__bitset, false>            iterator;
     typedef __bit_iterator<__bitset, false>            iterator;
     typedef __bit_iterator<__bitset, true>             const_iterator;
     typedef __bit_iterator<__bitset, true>             const_iterator;
 
 
+    _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR __bitset() _NOEXCEPT;
     _LIBCPP_CONSTEXPR __bitset() _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     explicit _LIBCPP_CONSTEXPR __bitset(unsigned long long __v) _NOEXCEPT;
     explicit _LIBCPP_CONSTEXPR __bitset(unsigned long long __v) _NOEXCEPT;
 
 
     _LIBCPP_INLINE_VISIBILITY reference __make_ref(size_t __pos) _NOEXCEPT
     _LIBCPP_INLINE_VISIBILITY reference __make_ref(size_t __pos) _NOEXCEPT
@@ -462,23 +473,32 @@ protected:
     _LIBCPP_INLINE_VISIBILITY const_iterator __make_iter(size_t __pos) const _NOEXCEPT
     _LIBCPP_INLINE_VISIBILITY const_iterator __make_iter(size_t __pos) const _NOEXCEPT
         {return const_iterator(&__first_ + __pos / __bits_per_word, __pos % __bits_per_word);}
         {return const_iterator(&__first_ + __pos / __bits_per_word, __pos % __bits_per_word);}
 
 
+    _LIBCPP_INLINE_VISIBILITY
     void operator&=(const __bitset& __v) _NOEXCEPT;
     void operator&=(const __bitset& __v) _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     void operator|=(const __bitset& __v) _NOEXCEPT;
     void operator|=(const __bitset& __v) _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     void operator^=(const __bitset& __v) _NOEXCEPT;
     void operator^=(const __bitset& __v) _NOEXCEPT;
 
 
+    _LIBCPP_INLINE_VISIBILITY
     void flip() _NOEXCEPT;
     void flip() _NOEXCEPT;
 
 
+    _LIBCPP_INLINE_VISIBILITY
     unsigned long to_ulong() const;
     unsigned long to_ulong() const;
+    _LIBCPP_INLINE_VISIBILITY
     unsigned long long to_ullong() const;
     unsigned long long to_ullong() const;
 
 
+    _LIBCPP_INLINE_VISIBILITY
     bool all() const _NOEXCEPT;
     bool all() const _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     bool any() const _NOEXCEPT;
     bool any() const _NOEXCEPT;
 
 
+    _LIBCPP_INLINE_VISIBILITY
     size_t __hash_code() const _NOEXCEPT;
     size_t __hash_code() const _NOEXCEPT;
 };
 };
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _LIBCPP_CONSTEXPR
 _LIBCPP_CONSTEXPR
 __bitset<1, _Size>::__bitset() _NOEXCEPT
 __bitset<1, _Size>::__bitset() _NOEXCEPT
     : __first_(0)
     : __first_(0)
@@ -486,7 +506,7 @@ __bitset<1, _Size>::__bitset() _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _LIBCPP_CONSTEXPR
 _LIBCPP_CONSTEXPR
 __bitset<1, _Size>::__bitset(unsigned long long __v) _NOEXCEPT
 __bitset<1, _Size>::__bitset(unsigned long long __v) _NOEXCEPT
     : __first_(static_cast<__storage_type>(__v))
     : __first_(static_cast<__storage_type>(__v))
@@ -494,7 +514,7 @@ __bitset<1, _Size>::__bitset(unsigned long long __v) _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 __bitset<1, _Size>::operator&=(const __bitset& __v) _NOEXCEPT
 __bitset<1, _Size>::operator&=(const __bitset& __v) _NOEXCEPT
 {
 {
@@ -502,7 +522,7 @@ __bitset<1, _Size>::operator&=(const __bitset& __v) _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 __bitset<1, _Size>::operator|=(const __bitset& __v) _NOEXCEPT
 __bitset<1, _Size>::operator|=(const __bitset& __v) _NOEXCEPT
 {
 {
@@ -510,7 +530,7 @@ __bitset<1, _Size>::operator|=(const __bitset& __v) _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 __bitset<1, _Size>::operator^=(const __bitset& __v) _NOEXCEPT
 __bitset<1, _Size>::operator^=(const __bitset& __v) _NOEXCEPT
 {
 {
@@ -518,7 +538,7 @@ __bitset<1, _Size>::operator^=(const __bitset& __v) _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 __bitset<1, _Size>::flip() _NOEXCEPT
 __bitset<1, _Size>::flip() _NOEXCEPT
 {
 {
@@ -528,7 +548,7 @@ __bitset<1, _Size>::flip() _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 unsigned long
 unsigned long
 __bitset<1, _Size>::to_ulong() const
 __bitset<1, _Size>::to_ulong() const
 {
 {
@@ -536,7 +556,7 @@ __bitset<1, _Size>::to_ulong() const
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 unsigned long long
 unsigned long long
 __bitset<1, _Size>::to_ullong() const
 __bitset<1, _Size>::to_ullong() const
 {
 {
@@ -544,7 +564,7 @@ __bitset<1, _Size>::to_ullong() const
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bool
 bool
 __bitset<1, _Size>::all() const _NOEXCEPT
 __bitset<1, _Size>::all() const _NOEXCEPT
 {
 {
@@ -553,7 +573,7 @@ __bitset<1, _Size>::all() const _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bool
 bool
 __bitset<1, _Size>::any() const _NOEXCEPT
 __bitset<1, _Size>::any() const _NOEXCEPT
 {
 {
@@ -562,7 +582,7 @@ __bitset<1, _Size>::any() const _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 size_t
 size_t
 __bitset<1, _Size>::__hash_code() const _NOEXCEPT
 __bitset<1, _Size>::__hash_code() const _NOEXCEPT
 {
 {
@@ -593,7 +613,9 @@ protected:
     typedef __bit_iterator<__bitset, false>            iterator;
     typedef __bit_iterator<__bitset, false>            iterator;
     typedef __bit_iterator<__bitset, true>             const_iterator;
     typedef __bit_iterator<__bitset, true>             const_iterator;
 
 
+    _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR __bitset() _NOEXCEPT;
     _LIBCPP_CONSTEXPR __bitset() _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     explicit _LIBCPP_CONSTEXPR __bitset(unsigned long long) _NOEXCEPT;
     explicit _LIBCPP_CONSTEXPR __bitset(unsigned long long) _NOEXCEPT;
 
 
     _LIBCPP_INLINE_VISIBILITY reference __make_ref(size_t) _NOEXCEPT
     _LIBCPP_INLINE_VISIBILITY reference __make_ref(size_t) _NOEXCEPT
@@ -620,13 +642,13 @@ protected:
     _LIBCPP_INLINE_VISIBILITY size_t __hash_code() const _NOEXCEPT {return 0;}
     _LIBCPP_INLINE_VISIBILITY size_t __hash_code() const _NOEXCEPT {return 0;}
 };
 };
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _LIBCPP_CONSTEXPR
 _LIBCPP_CONSTEXPR
 __bitset<0, 0>::__bitset() _NOEXCEPT
 __bitset<0, 0>::__bitset() _NOEXCEPT
 {
 {
 }
 }
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _LIBCPP_CONSTEXPR
 _LIBCPP_CONSTEXPR
 __bitset<0, 0>::__bitset(unsigned long long) _NOEXCEPT
 __bitset<0, 0>::__bitset(unsigned long long) _NOEXCEPT
 {
 {
@@ -663,16 +685,23 @@ public:
                         _CharT __zero = _CharT('0'), _CharT __one = _CharT('1'));
                         _CharT __zero = _CharT('0'), _CharT __one = _CharT('1'));
 
 
     // 23.3.5.2 bitset operations:
     // 23.3.5.2 bitset operations:
+    _LIBCPP_INLINE_VISIBILITY
     bitset& operator&=(const bitset& __rhs) _NOEXCEPT;
     bitset& operator&=(const bitset& __rhs) _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     bitset& operator|=(const bitset& __rhs) _NOEXCEPT;
     bitset& operator|=(const bitset& __rhs) _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     bitset& operator^=(const bitset& __rhs) _NOEXCEPT;
     bitset& operator^=(const bitset& __rhs) _NOEXCEPT;
     bitset& operator<<=(size_t __pos) _NOEXCEPT;
     bitset& operator<<=(size_t __pos) _NOEXCEPT;
     bitset& operator>>=(size_t __pos) _NOEXCEPT;
     bitset& operator>>=(size_t __pos) _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     bitset& set() _NOEXCEPT;
     bitset& set() _NOEXCEPT;
     bitset& set(size_t __pos, bool __val = true);
     bitset& set(size_t __pos, bool __val = true);
+    _LIBCPP_INLINE_VISIBILITY
     bitset& reset() _NOEXCEPT;
     bitset& reset() _NOEXCEPT;
     bitset& reset(size_t __pos);
     bitset& reset(size_t __pos);
+    _LIBCPP_INLINE_VISIBILITY
     bitset  operator~() const _NOEXCEPT;
     bitset  operator~() const _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     bitset& flip() _NOEXCEPT;
     bitset& flip() _NOEXCEPT;
     bitset& flip(size_t __pos);
     bitset& flip(size_t __pos);
 
 
@@ -680,28 +709,40 @@ public:
     _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR
     _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR
                               const_reference operator[](size_t __p) const {return base::__make_ref(__p);}
                               const_reference operator[](size_t __p) const {return base::__make_ref(__p);}
     _LIBCPP_INLINE_VISIBILITY       reference operator[](size_t __p)       {return base::__make_ref(__p);}
     _LIBCPP_INLINE_VISIBILITY       reference operator[](size_t __p)       {return base::__make_ref(__p);}
+    _LIBCPP_INLINE_VISIBILITY
     unsigned long to_ulong() const;
     unsigned long to_ulong() const;
+    _LIBCPP_INLINE_VISIBILITY
     unsigned long long to_ullong() const;
     unsigned long long to_ullong() const;
     template <class _CharT, class _Traits, class _Allocator>
     template <class _CharT, class _Traits, class _Allocator>
         basic_string<_CharT, _Traits, _Allocator> to_string(_CharT __zero = _CharT('0'),
         basic_string<_CharT, _Traits, _Allocator> to_string(_CharT __zero = _CharT('0'),
                                                             _CharT __one = _CharT('1')) const;
                                                             _CharT __one = _CharT('1')) const;
     template <class _CharT, class _Traits>
     template <class _CharT, class _Traits>
+        _LIBCPP_INLINE_VISIBILITY
         basic_string<_CharT, _Traits, allocator<_CharT> > to_string(_CharT __zero = _CharT('0'),
         basic_string<_CharT, _Traits, allocator<_CharT> > to_string(_CharT __zero = _CharT('0'),
                                                                     _CharT __one = _CharT('1')) const;
                                                                     _CharT __one = _CharT('1')) const;
     template <class _CharT>
     template <class _CharT>
+        _LIBCPP_INLINE_VISIBILITY
         basic_string<_CharT, char_traits<_CharT>, allocator<_CharT> > to_string(_CharT __zero = _CharT('0'),
         basic_string<_CharT, char_traits<_CharT>, allocator<_CharT> > to_string(_CharT __zero = _CharT('0'),
                                                                                 _CharT __one = _CharT('1')) const;
                                                                                 _CharT __one = _CharT('1')) const;
+    _LIBCPP_INLINE_VISIBILITY
     basic_string<char, char_traits<char>, allocator<char> > to_string(char __zero = '0',
     basic_string<char, char_traits<char>, allocator<char> > to_string(char __zero = '0',
                                                                       char __one = '1') const;
                                                                       char __one = '1') const;
+    _LIBCPP_INLINE_VISIBILITY
     size_t count() const _NOEXCEPT;
     size_t count() const _NOEXCEPT;
     _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR size_t size() const _NOEXCEPT {return _Size;}
     _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR size_t size() const _NOEXCEPT {return _Size;}
+    _LIBCPP_INLINE_VISIBILITY
     bool operator==(const bitset& __rhs) const _NOEXCEPT;
     bool operator==(const bitset& __rhs) const _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     bool operator!=(const bitset& __rhs) const _NOEXCEPT;
     bool operator!=(const bitset& __rhs) const _NOEXCEPT;
     bool test(size_t __pos) const;
     bool test(size_t __pos) const;
+    _LIBCPP_INLINE_VISIBILITY
     bool all() const _NOEXCEPT;
     bool all() const _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     bool any() const _NOEXCEPT;
     bool any() const _NOEXCEPT;
     _LIBCPP_INLINE_VISIBILITY bool none() const _NOEXCEPT {return !any();}
     _LIBCPP_INLINE_VISIBILITY bool none() const _NOEXCEPT {return !any();}
+    _LIBCPP_INLINE_VISIBILITY
     bitset operator<<(size_t __pos) const _NOEXCEPT;
     bitset operator<<(size_t __pos) const _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     bitset operator>>(size_t __pos) const _NOEXCEPT;
     bitset operator>>(size_t __pos) const _NOEXCEPT;
 
 
 private:
 private:
@@ -774,7 +815,7 @@ bitset<_Size>::bitset(const basic_string<_CharT,_Traits,_Allocator>& __str,
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bitset<_Size>&
 bitset<_Size>&
 bitset<_Size>::operator&=(const bitset& __rhs) _NOEXCEPT
 bitset<_Size>::operator&=(const bitset& __rhs) _NOEXCEPT
 {
 {
@@ -783,7 +824,7 @@ bitset<_Size>::operator&=(const bitset& __rhs) _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bitset<_Size>&
 bitset<_Size>&
 bitset<_Size>::operator|=(const bitset& __rhs) _NOEXCEPT
 bitset<_Size>::operator|=(const bitset& __rhs) _NOEXCEPT
 {
 {
@@ -792,7 +833,7 @@ bitset<_Size>::operator|=(const bitset& __rhs) _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bitset<_Size>&
 bitset<_Size>&
 bitset<_Size>::operator^=(const bitset& __rhs) _NOEXCEPT
 bitset<_Size>::operator^=(const bitset& __rhs) _NOEXCEPT
 {
 {
@@ -821,7 +862,7 @@ bitset<_Size>::operator>>=(size_t __pos) _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bitset<_Size>&
 bitset<_Size>&
 bitset<_Size>::set() _NOEXCEPT
 bitset<_Size>::set() _NOEXCEPT
 {
 {
@@ -844,7 +885,7 @@ bitset<_Size>::set(size_t __pos, bool __val)
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bitset<_Size>&
 bitset<_Size>&
 bitset<_Size>::reset() _NOEXCEPT
 bitset<_Size>::reset() _NOEXCEPT
 {
 {
@@ -867,7 +908,7 @@ bitset<_Size>::reset(size_t __pos)
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bitset<_Size>
 bitset<_Size>
 bitset<_Size>::operator~() const _NOEXCEPT
 bitset<_Size>::operator~() const _NOEXCEPT
 {
 {
@@ -877,7 +918,7 @@ bitset<_Size>::operator~() const _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bitset<_Size>&
 bitset<_Size>&
 bitset<_Size>::flip() _NOEXCEPT
 bitset<_Size>::flip() _NOEXCEPT
 {
 {
@@ -901,7 +942,7 @@ bitset<_Size>::flip(size_t __pos)
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 unsigned long
 unsigned long
 bitset<_Size>::to_ulong() const
 bitset<_Size>::to_ulong() const
 {
 {
@@ -909,7 +950,7 @@ bitset<_Size>::to_ulong() const
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 unsigned long long
 unsigned long long
 bitset<_Size>::to_ullong() const
 bitset<_Size>::to_ullong() const
 {
 {
@@ -932,7 +973,7 @@ bitset<_Size>::to_string(_CharT __zero, _CharT __one) const
 
 
 template <size_t _Size>
 template <size_t _Size>
 template <class _CharT, class _Traits>
 template <class _CharT, class _Traits>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 basic_string<_CharT, _Traits, allocator<_CharT> >
 basic_string<_CharT, _Traits, allocator<_CharT> >
 bitset<_Size>::to_string(_CharT __zero, _CharT __one) const
 bitset<_Size>::to_string(_CharT __zero, _CharT __one) const
 {
 {
@@ -941,7 +982,7 @@ bitset<_Size>::to_string(_CharT __zero, _CharT __one) const
 
 
 template <size_t _Size>
 template <size_t _Size>
 template <class _CharT>
 template <class _CharT>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 basic_string<_CharT, char_traits<_CharT>, allocator<_CharT> >
 basic_string<_CharT, char_traits<_CharT>, allocator<_CharT> >
 bitset<_Size>::to_string(_CharT __zero, _CharT __one) const
 bitset<_Size>::to_string(_CharT __zero, _CharT __one) const
 {
 {
@@ -949,7 +990,7 @@ bitset<_Size>::to_string(_CharT __zero, _CharT __one) const
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 basic_string<char, char_traits<char>, allocator<char> >
 basic_string<char, char_traits<char>, allocator<char> >
 bitset<_Size>::to_string(char __zero, char __one) const
 bitset<_Size>::to_string(char __zero, char __one) const
 {
 {
@@ -957,7 +998,7 @@ bitset<_Size>::to_string(char __zero, char __one) const
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 size_t
 size_t
 bitset<_Size>::count() const _NOEXCEPT
 bitset<_Size>::count() const _NOEXCEPT
 {
 {
@@ -965,7 +1006,7 @@ bitset<_Size>::count() const _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bool
 bool
 bitset<_Size>::operator==(const bitset& __rhs) const _NOEXCEPT
 bitset<_Size>::operator==(const bitset& __rhs) const _NOEXCEPT
 {
 {
@@ -973,7 +1014,7 @@ bitset<_Size>::operator==(const bitset& __rhs) const _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bool
 bool
 bitset<_Size>::operator!=(const bitset& __rhs) const _NOEXCEPT
 bitset<_Size>::operator!=(const bitset& __rhs) const _NOEXCEPT
 {
 {
@@ -994,7 +1035,7 @@ bitset<_Size>::test(size_t __pos) const
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bool
 bool
 bitset<_Size>::all() const _NOEXCEPT
 bitset<_Size>::all() const _NOEXCEPT
 {
 {
@@ -1002,7 +1043,7 @@ bitset<_Size>::all() const _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bool
 bool
 bitset<_Size>::any() const _NOEXCEPT
 bitset<_Size>::any() const _NOEXCEPT
 {
 {
@@ -1010,7 +1051,7 @@ bitset<_Size>::any() const _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bitset<_Size>
 bitset<_Size>
 bitset<_Size>::operator<<(size_t __pos) const _NOEXCEPT
 bitset<_Size>::operator<<(size_t __pos) const _NOEXCEPT
 {
 {
@@ -1020,7 +1061,7 @@ bitset<_Size>::operator<<(size_t __pos) const _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bitset<_Size>
 bitset<_Size>
 bitset<_Size>::operator>>(size_t __pos) const _NOEXCEPT
 bitset<_Size>::operator>>(size_t __pos) const _NOEXCEPT
 {
 {

+ 14 - 7
include/condition_variable

@@ -124,14 +124,18 @@ class _LIBCPP_TYPE_VIS condition_variable_any
     condition_variable __cv_;
     condition_variable __cv_;
     shared_ptr<mutex>  __mut_;
     shared_ptr<mutex>  __mut_;
 public:
 public:
+    _LIBCPP_INLINE_VISIBILITY
     condition_variable_any();
     condition_variable_any();
 
 
+    _LIBCPP_INLINE_VISIBILITY
     void notify_one() _NOEXCEPT;
     void notify_one() _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     void notify_all() _NOEXCEPT;
     void notify_all() _NOEXCEPT;
 
 
     template <class _Lock>
     template <class _Lock>
         void wait(_Lock& __lock);
         void wait(_Lock& __lock);
     template <class _Lock, class _Predicate>
     template <class _Lock, class _Predicate>
+        _LIBCPP_INLINE_VISIBILITY
         void wait(_Lock& __lock, _Predicate __pred);
         void wait(_Lock& __lock, _Predicate __pred);
 
 
     template <class _Lock, class _Clock, class _Duration>
     template <class _Lock, class _Clock, class _Duration>
@@ -141,27 +145,30 @@ public:
 
 
     template <class _Lock, class _Clock, class _Duration, class _Predicate>
     template <class _Lock, class _Clock, class _Duration, class _Predicate>
         bool
         bool
+        _LIBCPP_INLINE_VISIBILITY
         wait_until(_Lock& __lock,
         wait_until(_Lock& __lock,
                    const chrono::time_point<_Clock, _Duration>& __t,
                    const chrono::time_point<_Clock, _Duration>& __t,
                    _Predicate __pred);
                    _Predicate __pred);
 
 
     template <class _Lock, class _Rep, class _Period>
     template <class _Lock, class _Rep, class _Period>
         cv_status
         cv_status
+        _LIBCPP_INLINE_VISIBILITY
         wait_for(_Lock& __lock,
         wait_for(_Lock& __lock,
                  const chrono::duration<_Rep, _Period>& __d);
                  const chrono::duration<_Rep, _Period>& __d);
 
 
     template <class _Lock, class _Rep, class _Period, class _Predicate>
     template <class _Lock, class _Rep, class _Period, class _Predicate>
         bool
         bool
+        _LIBCPP_INLINE_VISIBILITY
         wait_for(_Lock& __lock,
         wait_for(_Lock& __lock,
                  const chrono::duration<_Rep, _Period>& __d,
                  const chrono::duration<_Rep, _Period>& __d,
                  _Predicate __pred);
                  _Predicate __pred);
 };
 };
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 condition_variable_any::condition_variable_any()
 condition_variable_any::condition_variable_any()
     : __mut_(make_shared<mutex>()) {}
     : __mut_(make_shared<mutex>()) {}
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 condition_variable_any::notify_one() _NOEXCEPT
 condition_variable_any::notify_one() _NOEXCEPT
 {
 {
@@ -169,7 +176,7 @@ condition_variable_any::notify_one() _NOEXCEPT
     __cv_.notify_one();
     __cv_.notify_one();
 }
 }
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 condition_variable_any::notify_all() _NOEXCEPT
 condition_variable_any::notify_all() _NOEXCEPT
 {
 {
@@ -196,7 +203,7 @@ condition_variable_any::wait(_Lock& __lock)
 }  // __mut_.unlock(), __lock.lock()
 }  // __mut_.unlock(), __lock.lock()
 
 
 template <class _Lock, class _Predicate>
 template <class _Lock, class _Predicate>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 condition_variable_any::wait(_Lock& __lock, _Predicate __pred)
 condition_variable_any::wait(_Lock& __lock, _Predicate __pred)
 {
 {
@@ -218,7 +225,7 @@ condition_variable_any::wait_until(_Lock& __lock,
 }  // __mut_.unlock(), __lock.lock()
 }  // __mut_.unlock(), __lock.lock()
 
 
 template <class _Lock, class _Clock, class _Duration, class _Predicate>
 template <class _Lock, class _Clock, class _Duration, class _Predicate>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bool
 bool
 condition_variable_any::wait_until(_Lock& __lock,
 condition_variable_any::wait_until(_Lock& __lock,
                                    const chrono::time_point<_Clock, _Duration>& __t,
                                    const chrono::time_point<_Clock, _Duration>& __t,
@@ -231,7 +238,7 @@ condition_variable_any::wait_until(_Lock& __lock,
 }
 }
 
 
 template <class _Lock, class _Rep, class _Period>
 template <class _Lock, class _Rep, class _Period>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 cv_status
 cv_status
 condition_variable_any::wait_for(_Lock& __lock,
 condition_variable_any::wait_for(_Lock& __lock,
                                  const chrono::duration<_Rep, _Period>& __d)
                                  const chrono::duration<_Rep, _Period>& __d)
@@ -240,7 +247,7 @@ condition_variable_any::wait_for(_Lock& __lock,
 }
 }
 
 
 template <class _Lock, class _Rep, class _Period, class _Predicate>
 template <class _Lock, class _Rep, class _Period, class _Predicate>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bool
 bool
 condition_variable_any::wait_for(_Lock& __lock,
 condition_variable_any::wait_for(_Lock& __lock,
                                  const chrono::duration<_Rep, _Period>& __d,
                                  const chrono::duration<_Rep, _Period>& __d,

+ 32 - 16
include/deque

@@ -964,8 +964,10 @@ protected:
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
     const allocator_type& __alloc() const _NOEXCEPT {return __size_.second();}
     const allocator_type& __alloc() const _NOEXCEPT {return __size_.second();}
 
 
+    _LIBCPP_INLINE_VISIBILITY
     __deque_base()
     __deque_base()
         _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);
         _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);
+    _LIBCPP_INLINE_VISIBILITY
     explicit __deque_base(const allocator_type& __a);
     explicit __deque_base(const allocator_type& __a);
 public:
 public:
     ~__deque_base();
     ~__deque_base();
@@ -1090,13 +1092,13 @@ __deque_base<_Tp, _Allocator>::end() const _NOEXCEPT
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 __deque_base<_Tp, _Allocator>::__deque_base()
 __deque_base<_Tp, _Allocator>::__deque_base()
     _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
     _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
     : __start_(0), __size_(0) {}
     : __start_(0), __size_(0) {}
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 __deque_base<_Tp, _Allocator>::__deque_base(const allocator_type& __a)
 __deque_base<_Tp, _Allocator>::__deque_base(const allocator_type& __a)
     : __map_(__pointer_allocator(__a)), __start_(0), __size_(0, __a) {}
     : __map_(__pointer_allocator(__a)), __start_(0), __size_(0, __a) {}
 
 
@@ -1241,8 +1243,11 @@ public:
 #endif   // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 #endif   // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 
 
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    _LIBCPP_INLINE_VISIBILITY
     deque(deque&& __c) _NOEXCEPT_(is_nothrow_move_constructible<__base>::value);
     deque(deque&& __c) _NOEXCEPT_(is_nothrow_move_constructible<__base>::value);
+    _LIBCPP_INLINE_VISIBILITY
     deque(deque&& __c, const allocator_type& __a);
     deque(deque&& __c, const allocator_type& __a);
+    _LIBCPP_INLINE_VISIBILITY
     deque& operator=(deque&& __c)
     deque& operator=(deque&& __c)
         _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&
         _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&
                    is_nothrow_move_assignable<allocator_type>::value);
                    is_nothrow_move_assignable<allocator_type>::value);
@@ -1261,6 +1266,7 @@ public:
     void assign(initializer_list<value_type> __il) {assign(__il.begin(), __il.end());}
     void assign(initializer_list<value_type> __il) {assign(__il.begin(), __il.end());}
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 
 
+    _LIBCPP_INLINE_VISIBILITY
     allocator_type get_allocator() const _NOEXCEPT;
     allocator_type get_allocator() const _NOEXCEPT;
 
 
     // iterators:
     // iterators:
@@ -1313,13 +1319,21 @@ public:
     bool empty() const _NOEXCEPT {return __base::size() == 0;}
     bool empty() const _NOEXCEPT {return __base::size() == 0;}
 
 
     // element access:
     // element access:
+    _LIBCPP_INLINE_VISIBILITY
     reference operator[](size_type __i);
     reference operator[](size_type __i);
+    _LIBCPP_INLINE_VISIBILITY
     const_reference operator[](size_type __i) const;
     const_reference operator[](size_type __i) const;
+    _LIBCPP_INLINE_VISIBILITY
     reference at(size_type __i);
     reference at(size_type __i);
+    _LIBCPP_INLINE_VISIBILITY
     const_reference at(size_type __i) const;
     const_reference at(size_type __i) const;
+    _LIBCPP_INLINE_VISIBILITY
     reference front();
     reference front();
+    _LIBCPP_INLINE_VISIBILITY
     const_reference front() const;
     const_reference front() const;
+    _LIBCPP_INLINE_VISIBILITY
     reference back();
     reference back();
+    _LIBCPP_INLINE_VISIBILITY
     const_reference back() const;
     const_reference back() const;
 
 
     // 23.2.2.3 modifiers:
     // 23.2.2.3 modifiers:
@@ -1358,6 +1372,7 @@ public:
     iterator erase(const_iterator __p);
     iterator erase(const_iterator __p);
     iterator erase(const_iterator __f, const_iterator __l);
     iterator erase(const_iterator __f, const_iterator __l);
 
 
+    _LIBCPP_INLINE_VISIBILITY
     void swap(deque& __c)
     void swap(deque& __c)
 #if _LIBCPP_STD_VER >= 14
 #if _LIBCPP_STD_VER >= 14
         _NOEXCEPT;
         _NOEXCEPT;
@@ -1365,6 +1380,7 @@ public:
         _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value ||
         _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value ||
                    __is_nothrow_swappable<allocator_type>::value);
                    __is_nothrow_swappable<allocator_type>::value);
 #endif
 #endif
+    _LIBCPP_INLINE_VISIBILITY
     void clear() _NOEXCEPT;
     void clear() _NOEXCEPT;
 
 
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -1537,7 +1553,7 @@ deque<_Tp, _Allocator>::operator=(const deque& __c)
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 deque<_Tp, _Allocator>::deque(deque&& __c)
 deque<_Tp, _Allocator>::deque(deque&& __c)
     _NOEXCEPT_(is_nothrow_move_constructible<__base>::value)
     _NOEXCEPT_(is_nothrow_move_constructible<__base>::value)
     : __base(_VSTD::move(__c))
     : __base(_VSTD::move(__c))
@@ -1545,7 +1561,7 @@ deque<_Tp, _Allocator>::deque(deque&& __c)
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 deque<_Tp, _Allocator>::deque(deque&& __c, const allocator_type& __a)
 deque<_Tp, _Allocator>::deque(deque&& __c, const allocator_type& __a)
     : __base(_VSTD::move(__c), __a)
     : __base(_VSTD::move(__c), __a)
 {
 {
@@ -1557,7 +1573,7 @@ deque<_Tp, _Allocator>::deque(deque&& __c, const allocator_type& __a)
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 deque<_Tp, _Allocator>&
 deque<_Tp, _Allocator>&
 deque<_Tp, _Allocator>::operator=(deque&& __c)
 deque<_Tp, _Allocator>::operator=(deque&& __c)
         _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&
         _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&
@@ -1641,7 +1657,7 @@ deque<_Tp, _Allocator>::assign(size_type __n, const value_type& __v)
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _Allocator
 _Allocator
 deque<_Tp, _Allocator>::get_allocator() const _NOEXCEPT
 deque<_Tp, _Allocator>::get_allocator() const _NOEXCEPT
 {
 {
@@ -1700,7 +1716,7 @@ deque<_Tp, _Allocator>::shrink_to_fit() _NOEXCEPT
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename deque<_Tp, _Allocator>::reference
 typename deque<_Tp, _Allocator>::reference
 deque<_Tp, _Allocator>::operator[](size_type __i)
 deque<_Tp, _Allocator>::operator[](size_type __i)
 {
 {
@@ -1709,7 +1725,7 @@ deque<_Tp, _Allocator>::operator[](size_type __i)
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename deque<_Tp, _Allocator>::const_reference
 typename deque<_Tp, _Allocator>::const_reference
 deque<_Tp, _Allocator>::operator[](size_type __i) const
 deque<_Tp, _Allocator>::operator[](size_type __i) const
 {
 {
@@ -1718,7 +1734,7 @@ deque<_Tp, _Allocator>::operator[](size_type __i) const
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename deque<_Tp, _Allocator>::reference
 typename deque<_Tp, _Allocator>::reference
 deque<_Tp, _Allocator>::at(size_type __i)
 deque<_Tp, _Allocator>::at(size_type __i)
 {
 {
@@ -1729,7 +1745,7 @@ deque<_Tp, _Allocator>::at(size_type __i)
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename deque<_Tp, _Allocator>::const_reference
 typename deque<_Tp, _Allocator>::const_reference
 deque<_Tp, _Allocator>::at(size_type __i) const
 deque<_Tp, _Allocator>::at(size_type __i) const
 {
 {
@@ -1740,7 +1756,7 @@ deque<_Tp, _Allocator>::at(size_type __i) const
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename deque<_Tp, _Allocator>::reference
 typename deque<_Tp, _Allocator>::reference
 deque<_Tp, _Allocator>::front()
 deque<_Tp, _Allocator>::front()
 {
 {
@@ -1749,7 +1765,7 @@ deque<_Tp, _Allocator>::front()
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename deque<_Tp, _Allocator>::const_reference
 typename deque<_Tp, _Allocator>::const_reference
 deque<_Tp, _Allocator>::front() const
 deque<_Tp, _Allocator>::front() const
 {
 {
@@ -1758,7 +1774,7 @@ deque<_Tp, _Allocator>::front() const
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename deque<_Tp, _Allocator>::reference
 typename deque<_Tp, _Allocator>::reference
 deque<_Tp, _Allocator>::back()
 deque<_Tp, _Allocator>::back()
 {
 {
@@ -1767,7 +1783,7 @@ deque<_Tp, _Allocator>::back()
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename deque<_Tp, _Allocator>::const_reference
 typename deque<_Tp, _Allocator>::const_reference
 deque<_Tp, _Allocator>::back() const
 deque<_Tp, _Allocator>::back() const
 {
 {
@@ -2806,7 +2822,7 @@ deque<_Tp, _Allocator>::__erase_to_end(const_iterator __f)
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 deque<_Tp, _Allocator>::swap(deque& __c)
 deque<_Tp, _Allocator>::swap(deque& __c)
 #if _LIBCPP_STD_VER >= 14
 #if _LIBCPP_STD_VER >= 14
@@ -2820,7 +2836,7 @@ deque<_Tp, _Allocator>::swap(deque& __c)
 }
 }
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 deque<_Tp, _Allocator>::clear() _NOEXCEPT
 deque<_Tp, _Allocator>::clear() _NOEXCEPT
 {
 {

+ 18 - 9
include/future

@@ -576,6 +576,7 @@ public:
     void wait();
     void wait();
     template <class _Rep, class _Period>
     template <class _Rep, class _Period>
         future_status
         future_status
+        _LIBCPP_INLINE_VISIBILITY
         wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const;
         wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const;
     template <class _Clock, class _Duration>
     template <class _Clock, class _Duration>
         future_status
         future_status
@@ -599,7 +600,7 @@ __assoc_sub_state::wait_until(const chrono::time_point<_Clock, _Duration>& __abs
 }
 }
 
 
 template <class _Rep, class _Period>
 template <class _Rep, class _Period>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 future_status
 future_status
 __assoc_sub_state::wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const
 __assoc_sub_state::wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const
 {
 {
@@ -851,6 +852,7 @@ class __deferred_assoc_state
 
 
 public:
 public:
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    _LIBCPP_INLINE_VISIBILITY
     explicit __deferred_assoc_state(_Fp&& __f);
     explicit __deferred_assoc_state(_Fp&& __f);
 #endif
 #endif
 
 
@@ -860,7 +862,7 @@ public:
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
 template <class _Rp, class _Fp>
 template <class _Rp, class _Fp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 __deferred_assoc_state<_Rp, _Fp>::__deferred_assoc_state(_Fp&& __f)
 __deferred_assoc_state<_Rp, _Fp>::__deferred_assoc_state(_Fp&& __f)
     : __func_(_VSTD::forward<_Fp>(__f))
     : __func_(_VSTD::forward<_Fp>(__f))
 {
 {
@@ -897,6 +899,7 @@ class __deferred_assoc_state<void, _Fp>
 
 
 public:
 public:
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    _LIBCPP_INLINE_VISIBILITY
     explicit __deferred_assoc_state(_Fp&& __f);
     explicit __deferred_assoc_state(_Fp&& __f);
 #endif
 #endif
 
 
@@ -906,7 +909,7 @@ public:
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
 template <class _Fp>
 template <class _Fp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 __deferred_assoc_state<void, _Fp>::__deferred_assoc_state(_Fp&& __f)
 __deferred_assoc_state<void, _Fp>::__deferred_assoc_state(_Fp&& __f)
     : __func_(_VSTD::forward<_Fp>(__f))
     : __func_(_VSTD::forward<_Fp>(__f))
 {
 {
@@ -945,6 +948,7 @@ class __async_assoc_state
     virtual void __on_zero_shared() _NOEXCEPT;
     virtual void __on_zero_shared() _NOEXCEPT;
 public:
 public:
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    _LIBCPP_INLINE_VISIBILITY
     explicit __async_assoc_state(_Fp&& __f);
     explicit __async_assoc_state(_Fp&& __f);
 #endif
 #endif
 
 
@@ -954,7 +958,7 @@ public:
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
 template <class _Rp, class _Fp>
 template <class _Rp, class _Fp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 __async_assoc_state<_Rp, _Fp>::__async_assoc_state(_Fp&& __f)
 __async_assoc_state<_Rp, _Fp>::__async_assoc_state(_Fp&& __f)
     : __func_(_VSTD::forward<_Fp>(__f))
     : __func_(_VSTD::forward<_Fp>(__f))
 {
 {
@@ -999,6 +1003,7 @@ class __async_assoc_state<void, _Fp>
     virtual void __on_zero_shared() _NOEXCEPT;
     virtual void __on_zero_shared() _NOEXCEPT;
 public:
 public:
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    _LIBCPP_INLINE_VISIBILITY
     explicit __async_assoc_state(_Fp&& __f);
     explicit __async_assoc_state(_Fp&& __f);
 #endif
 #endif
 
 
@@ -1008,7 +1013,7 @@ public:
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
 template <class _Fp>
 template <class _Fp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 __async_assoc_state<void, _Fp>::__async_assoc_state(_Fp&& __f)
 __async_assoc_state<void, _Fp>::__async_assoc_state(_Fp&& __f)
     : __func_(_VSTD::forward<_Fp>(__f))
     : __func_(_VSTD::forward<_Fp>(__f))
 {
 {
@@ -1110,6 +1115,7 @@ private:
 public:
 public:
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
     ~future();
     ~future();
+    _LIBCPP_INLINE_VISIBILITY
     shared_future<_Rp> share();
     shared_future<_Rp> share();
 
 
     // retrieving the value
     // retrieving the value
@@ -1212,6 +1218,7 @@ private:
 public:
 public:
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
     ~future();
     ~future();
+    _LIBCPP_INLINE_VISIBILITY
     shared_future<_Rp&> share();
     shared_future<_Rp&> share();
 
 
     // retrieving the value
     // retrieving the value
@@ -1309,6 +1316,7 @@ private:
 public:
 public:
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
     ~future();
     ~future();
+    _LIBCPP_INLINE_VISIBILITY
     shared_future<void> share();
     shared_future<void> share();
 
 
     // retrieving the value
     // retrieving the value
@@ -1835,6 +1843,7 @@ public:
 
 
     void swap(__packaged_task_function&) _NOEXCEPT;
     void swap(__packaged_task_function&) _NOEXCEPT;
 
 
+    _LIBCPP_INLINE_VISIBILITY
     _Rp operator()(_ArgTypes...) const;
     _Rp operator()(_ArgTypes...) const;
 };
 };
 
 
@@ -1974,7 +1983,7 @@ __packaged_task_function<_Rp(_ArgTypes...)>::swap(__packaged_task_function& __f)
 }
 }
 
 
 template<class _Rp, class ..._ArgTypes>
 template<class _Rp, class ..._ArgTypes>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _Rp
 _Rp
 __packaged_task_function<_Rp(_ArgTypes...)>::operator()(_ArgTypes... __arg) const
 __packaged_task_function<_Rp(_ArgTypes...)>::operator()(_ArgTypes... __arg) const
 {
 {
@@ -2562,7 +2571,7 @@ swap(shared_future<_Rp>& __x, shared_future<_Rp>& __y) _NOEXCEPT
 }
 }
 
 
 template <class _Rp>
 template <class _Rp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 shared_future<_Rp>
 shared_future<_Rp>
 future<_Rp>::share()
 future<_Rp>::share()
 {
 {
@@ -2570,7 +2579,7 @@ future<_Rp>::share()
 }
 }
 
 
 template <class _Rp>
 template <class _Rp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 shared_future<_Rp&>
 shared_future<_Rp&>
 future<_Rp&>::share()
 future<_Rp&>::share()
 {
 {
@@ -2579,7 +2588,7 @@ future<_Rp&>::share()
 
 
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 shared_future<void>
 shared_future<void>
 future<void>::share()
 future<void>::share()
 {
 {

+ 6 - 3
include/locale

@@ -3776,11 +3776,14 @@ private:
     wstring_convert(const wstring_convert& __wc);
     wstring_convert(const wstring_convert& __wc);
     wstring_convert& operator=(const wstring_convert& __wc);
     wstring_convert& operator=(const wstring_convert& __wc);
 public:
 public:
+    _LIBCPP_ALWAYS_INLINE
     _LIBCPP_EXPLICIT_AFTER_CXX11 wstring_convert(_Codecvt* __pcvt = new _Codecvt);
     _LIBCPP_EXPLICIT_AFTER_CXX11 wstring_convert(_Codecvt* __pcvt = new _Codecvt);
+    _LIBCPP_ALWAYS_INLINE
     wstring_convert(_Codecvt* __pcvt, state_type __state);
     wstring_convert(_Codecvt* __pcvt, state_type __state);
     _LIBCPP_EXPLICIT_AFTER_CXX11 wstring_convert(const byte_string& __byte_err,
     _LIBCPP_EXPLICIT_AFTER_CXX11 wstring_convert(const byte_string& __byte_err,
                     const wide_string& __wide_err = wide_string());
                     const wide_string& __wide_err = wide_string());
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    _LIBCPP_ALWAYS_INLINE
     wstring_convert(wstring_convert&& __wc);
     wstring_convert(wstring_convert&& __wc);
 #endif
 #endif
     ~wstring_convert();
     ~wstring_convert();
@@ -3814,7 +3817,7 @@ public:
 };
 };
 
 
 template<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc>
 template<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc>
-inline _LIBCPP_ALWAYS_INLINE
+inline
 wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::
 wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::
     wstring_convert(_Codecvt* __pcvt)
     wstring_convert(_Codecvt* __pcvt)
         : __cvtptr_(__pcvt), __cvtstate_(), __cvtcount_(0)
         : __cvtptr_(__pcvt), __cvtstate_(), __cvtcount_(0)
@@ -3822,7 +3825,7 @@ wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::
 }
 }
 
 
 template<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc>
 template<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc>
-inline _LIBCPP_ALWAYS_INLINE
+inline
 wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::
 wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::
     wstring_convert(_Codecvt* __pcvt, state_type __state)
     wstring_convert(_Codecvt* __pcvt, state_type __state)
         : __cvtptr_(__pcvt), __cvtstate_(__state), __cvtcount_(0)
         : __cvtptr_(__pcvt), __cvtstate_(__state), __cvtcount_(0)
@@ -3841,7 +3844,7 @@ wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
 template<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc>
 template<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc>
-inline _LIBCPP_ALWAYS_INLINE
+inline
 wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::
 wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::
     wstring_convert(wstring_convert&& __wc)
     wstring_convert(wstring_convert&& __wc)
         : __byte_err_string_(_VSTD::move(__wc.__byte_err_string_)),
         : __byte_err_string_(_VSTD::move(__wc.__byte_err_string_)),

+ 62 - 36
include/memory

@@ -3874,7 +3874,9 @@ private:
 
 
     struct __nat {int __for_bool_;};
     struct __nat {int __for_bool_;};
 public:
 public:
+    _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR shared_ptr() _NOEXCEPT;
     _LIBCPP_CONSTEXPR shared_ptr() _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR shared_ptr(nullptr_t) _NOEXCEPT;
     _LIBCPP_CONSTEXPR shared_ptr(nullptr_t) _NOEXCEPT;
     template<class _Yp>
     template<class _Yp>
         explicit shared_ptr(_Yp* __p,
         explicit shared_ptr(_Yp* __p,
@@ -3887,15 +3889,18 @@ public:
                    typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat());
                    typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat());
     template <class _Dp> shared_ptr(nullptr_t __p, _Dp __d);
     template <class _Dp> shared_ptr(nullptr_t __p, _Dp __d);
     template <class _Dp, class _Alloc> shared_ptr(nullptr_t __p, _Dp __d, _Alloc __a);
     template <class _Dp, class _Alloc> shared_ptr(nullptr_t __p, _Dp __d, _Alloc __a);
-    template<class _Yp> shared_ptr(const shared_ptr<_Yp>& __r, element_type* __p) _NOEXCEPT;
+    template<class _Yp> _LIBCPP_INLINE_VISIBILITY shared_ptr(const shared_ptr<_Yp>& __r, element_type* __p) _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     shared_ptr(const shared_ptr& __r) _NOEXCEPT;
     shared_ptr(const shared_ptr& __r) _NOEXCEPT;
     template<class _Yp>
     template<class _Yp>
+        _LIBCPP_INLINE_VISIBILITY
         shared_ptr(const shared_ptr<_Yp>& __r,
         shared_ptr(const shared_ptr<_Yp>& __r,
                    typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat>::type = __nat())
                    typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat>::type = __nat())
                        _NOEXCEPT;
                        _NOEXCEPT;
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    _LIBCPP_INLINE_VISIBILITY
     shared_ptr(shared_ptr&& __r) _NOEXCEPT;
     shared_ptr(shared_ptr&& __r) _NOEXCEPT;
-    template<class _Yp> shared_ptr(shared_ptr<_Yp>&& __r,
+    template<class _Yp> _LIBCPP_INLINE_VISIBILITY  shared_ptr(shared_ptr<_Yp>&& __r,
                    typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat>::type = __nat())
                    typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat>::type = __nat())
                        _NOEXCEPT;
                        _NOEXCEPT;
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
@@ -3952,6 +3957,7 @@ public:
 
 
     ~shared_ptr();
     ~shared_ptr();
 
 
+    _LIBCPP_INLINE_VISIBILITY
     shared_ptr& operator=(const shared_ptr& __r) _NOEXCEPT;
     shared_ptr& operator=(const shared_ptr& __r) _NOEXCEPT;
     template<class _Yp>
     template<class _Yp>
         typename enable_if
         typename enable_if
@@ -3959,8 +3965,10 @@ public:
             is_convertible<_Yp*, element_type*>::value,
             is_convertible<_Yp*, element_type*>::value,
             shared_ptr&
             shared_ptr&
         >::type
         >::type
+        _LIBCPP_INLINE_VISIBILITY
         operator=(const shared_ptr<_Yp>& __r) _NOEXCEPT;
         operator=(const shared_ptr<_Yp>& __r) _NOEXCEPT;
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    _LIBCPP_INLINE_VISIBILITY
     shared_ptr& operator=(shared_ptr&& __r) _NOEXCEPT;
     shared_ptr& operator=(shared_ptr&& __r) _NOEXCEPT;
     template<class _Yp>
     template<class _Yp>
         typename enable_if
         typename enable_if
@@ -3968,6 +3976,7 @@ public:
             is_convertible<_Yp*, element_type*>::value,
             is_convertible<_Yp*, element_type*>::value,
             shared_ptr<_Tp>&
             shared_ptr<_Tp>&
         >::type
         >::type
+        _LIBCPP_INLINE_VISIBILITY
         operator=(shared_ptr<_Yp>&& __r);
         operator=(shared_ptr<_Yp>&& __r);
     template<class _Yp>
     template<class _Yp>
         typename enable_if
         typename enable_if
@@ -3976,6 +3985,7 @@ public:
             is_convertible<_Yp*, element_type*>::value,
             is_convertible<_Yp*, element_type*>::value,
             shared_ptr
             shared_ptr
         >::type&
         >::type&
+        _LIBCPP_INLINE_VISIBILITY
         operator=(auto_ptr<_Yp>&& __r);
         operator=(auto_ptr<_Yp>&& __r);
 #else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
     template<class _Yp>
     template<class _Yp>
@@ -3995,12 +4005,15 @@ public:
             shared_ptr&
             shared_ptr&
         >::type
         >::type
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+        _LIBCPP_INLINE_VISIBILITY
         operator=(unique_ptr<_Yp, _Dp>&& __r);
         operator=(unique_ptr<_Yp, _Dp>&& __r);
 #else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
         operator=(unique_ptr<_Yp, _Dp> __r);
         operator=(unique_ptr<_Yp, _Dp> __r);
 #endif
 #endif
 
 
+    _LIBCPP_INLINE_VISIBILITY
     void swap(shared_ptr& __r) _NOEXCEPT;
     void swap(shared_ptr& __r) _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     void reset() _NOEXCEPT;
     void reset() _NOEXCEPT;
     template<class _Yp>
     template<class _Yp>
         typename enable_if
         typename enable_if
@@ -4008,6 +4021,7 @@ public:
             is_convertible<_Yp*, element_type*>::value,
             is_convertible<_Yp*, element_type*>::value,
             void
             void
         >::type
         >::type
+        _LIBCPP_INLINE_VISIBILITY
         reset(_Yp* __p);
         reset(_Yp* __p);
     template<class _Yp, class _Dp>
     template<class _Yp, class _Dp>
         typename enable_if
         typename enable_if
@@ -4015,6 +4029,7 @@ public:
             is_convertible<_Yp*, element_type*>::value,
             is_convertible<_Yp*, element_type*>::value,
             void
             void
         >::type
         >::type
+        _LIBCPP_INLINE_VISIBILITY
         reset(_Yp* __p, _Dp __d);
         reset(_Yp* __p, _Dp __d);
     template<class _Yp, class _Dp, class _Alloc>
     template<class _Yp, class _Dp, class _Alloc>
         typename enable_if
         typename enable_if
@@ -4022,6 +4037,7 @@ public:
             is_convertible<_Yp*, element_type*>::value,
             is_convertible<_Yp*, element_type*>::value,
             void
             void
         >::type
         >::type
+        _LIBCPP_INLINE_VISIBILITY
         reset(_Yp* __p, _Dp __d, _Alloc __a);
         reset(_Yp* __p, _Dp __d, _Alloc __a);
 
 
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -4123,7 +4139,7 @@ private:
 };
 };
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _LIBCPP_CONSTEXPR
 _LIBCPP_CONSTEXPR
 shared_ptr<_Tp>::shared_ptr() _NOEXCEPT
 shared_ptr<_Tp>::shared_ptr() _NOEXCEPT
     : __ptr_(0),
     : __ptr_(0),
@@ -4132,7 +4148,7 @@ shared_ptr<_Tp>::shared_ptr() _NOEXCEPT
 }
 }
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _LIBCPP_CONSTEXPR
 _LIBCPP_CONSTEXPR
 shared_ptr<_Tp>::shared_ptr(nullptr_t) _NOEXCEPT
 shared_ptr<_Tp>::shared_ptr(nullptr_t) _NOEXCEPT
     : __ptr_(0),
     : __ptr_(0),
@@ -4255,7 +4271,7 @@ shared_ptr<_Tp>::shared_ptr(nullptr_t __p, _Dp __d, _Alloc __a)
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp>
 template<class _Yp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 shared_ptr<_Tp>::shared_ptr(const shared_ptr<_Yp>& __r, element_type *__p) _NOEXCEPT
 shared_ptr<_Tp>::shared_ptr(const shared_ptr<_Yp>& __r, element_type *__p) _NOEXCEPT
     : __ptr_(__p),
     : __ptr_(__p),
       __cntrl_(__r.__cntrl_)
       __cntrl_(__r.__cntrl_)
@@ -4265,7 +4281,7 @@ shared_ptr<_Tp>::shared_ptr(const shared_ptr<_Yp>& __r, element_type *__p) _NOEX
 }
 }
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 shared_ptr<_Tp>::shared_ptr(const shared_ptr& __r) _NOEXCEPT
 shared_ptr<_Tp>::shared_ptr(const shared_ptr& __r) _NOEXCEPT
     : __ptr_(__r.__ptr_),
     : __ptr_(__r.__ptr_),
       __cntrl_(__r.__cntrl_)
       __cntrl_(__r.__cntrl_)
@@ -4276,7 +4292,7 @@ shared_ptr<_Tp>::shared_ptr(const shared_ptr& __r) _NOEXCEPT
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp>
 template<class _Yp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 shared_ptr<_Tp>::shared_ptr(const shared_ptr<_Yp>& __r,
 shared_ptr<_Tp>::shared_ptr(const shared_ptr<_Yp>& __r,
                             typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat>::type)
                             typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat>::type)
          _NOEXCEPT
          _NOEXCEPT
@@ -4290,7 +4306,7 @@ shared_ptr<_Tp>::shared_ptr(const shared_ptr<_Yp>& __r,
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 shared_ptr<_Tp>::shared_ptr(shared_ptr&& __r) _NOEXCEPT
 shared_ptr<_Tp>::shared_ptr(shared_ptr&& __r) _NOEXCEPT
     : __ptr_(__r.__ptr_),
     : __ptr_(__r.__ptr_),
       __cntrl_(__r.__cntrl_)
       __cntrl_(__r.__cntrl_)
@@ -4301,7 +4317,7 @@ shared_ptr<_Tp>::shared_ptr(shared_ptr&& __r) _NOEXCEPT
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp>
 template<class _Yp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 shared_ptr<_Tp>::shared_ptr(shared_ptr<_Yp>&& __r,
 shared_ptr<_Tp>::shared_ptr(shared_ptr<_Yp>&& __r,
                             typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat>::type)
                             typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat>::type)
          _NOEXCEPT
          _NOEXCEPT
@@ -4588,7 +4604,7 @@ shared_ptr<_Tp>::~shared_ptr()
 }
 }
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 shared_ptr<_Tp>&
 shared_ptr<_Tp>&
 shared_ptr<_Tp>::operator=(const shared_ptr& __r) _NOEXCEPT
 shared_ptr<_Tp>::operator=(const shared_ptr& __r) _NOEXCEPT
 {
 {
@@ -4598,7 +4614,7 @@ shared_ptr<_Tp>::operator=(const shared_ptr& __r) _NOEXCEPT
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp>
 template<class _Yp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename enable_if
 typename enable_if
 <
 <
     is_convertible<_Yp*, _Tp*>::value,
     is_convertible<_Yp*, _Tp*>::value,
@@ -4613,7 +4629,7 @@ shared_ptr<_Tp>::operator=(const shared_ptr<_Yp>& __r) _NOEXCEPT
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 shared_ptr<_Tp>&
 shared_ptr<_Tp>&
 shared_ptr<_Tp>::operator=(shared_ptr&& __r) _NOEXCEPT
 shared_ptr<_Tp>::operator=(shared_ptr&& __r) _NOEXCEPT
 {
 {
@@ -4623,7 +4639,7 @@ shared_ptr<_Tp>::operator=(shared_ptr&& __r) _NOEXCEPT
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp>
 template<class _Yp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename enable_if
 typename enable_if
 <
 <
     is_convertible<_Yp*, _Tp*>::value,
     is_convertible<_Yp*, _Tp*>::value,
@@ -4637,7 +4653,7 @@ shared_ptr<_Tp>::operator=(shared_ptr<_Yp>&& __r)
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp>
 template<class _Yp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename enable_if
 typename enable_if
 <
 <
     !is_array<_Yp>::value &&
     !is_array<_Yp>::value &&
@@ -4652,7 +4668,7 @@ shared_ptr<_Tp>::operator=(auto_ptr<_Yp>&& __r)
 
 
 template<class _Tp>
 template<class _Tp>
 template <class _Yp, class _Dp>
 template <class _Yp, class _Dp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename enable_if
 typename enable_if
 <
 <
     !is_array<_Yp>::value &&
     !is_array<_Yp>::value &&
@@ -4700,7 +4716,7 @@ shared_ptr<_Tp>::operator=(unique_ptr<_Yp, _Dp> __r)
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 shared_ptr<_Tp>::swap(shared_ptr& __r) _NOEXCEPT
 shared_ptr<_Tp>::swap(shared_ptr& __r) _NOEXCEPT
 {
 {
@@ -4709,7 +4725,7 @@ shared_ptr<_Tp>::swap(shared_ptr& __r) _NOEXCEPT
 }
 }
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 shared_ptr<_Tp>::reset() _NOEXCEPT
 shared_ptr<_Tp>::reset() _NOEXCEPT
 {
 {
@@ -4718,7 +4734,7 @@ shared_ptr<_Tp>::reset() _NOEXCEPT
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp>
 template<class _Yp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename enable_if
 typename enable_if
 <
 <
     is_convertible<_Yp*, _Tp*>::value,
     is_convertible<_Yp*, _Tp*>::value,
@@ -4731,7 +4747,7 @@ shared_ptr<_Tp>::reset(_Yp* __p)
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp, class _Dp>
 template<class _Yp, class _Dp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename enable_if
 typename enable_if
 <
 <
     is_convertible<_Yp*, _Tp*>::value,
     is_convertible<_Yp*, _Tp*>::value,
@@ -4744,7 +4760,7 @@ shared_ptr<_Tp>::reset(_Yp* __p, _Dp __d)
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp, class _Dp, class _Alloc>
 template<class _Yp, class _Dp, class _Alloc>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename enable_if
 typename enable_if
 <
 <
     is_convertible<_Yp*, _Tp*>::value,
     is_convertible<_Yp*, _Tp*>::value,
@@ -5061,23 +5077,27 @@ private:
     __shared_weak_count* __cntrl_;
     __shared_weak_count* __cntrl_;
 
 
 public:
 public:
+    _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR weak_ptr() _NOEXCEPT;
     _LIBCPP_CONSTEXPR weak_ptr() _NOEXCEPT;
-    template<class _Yp> weak_ptr(shared_ptr<_Yp> const& __r,
+    template<class _Yp> _LIBCPP_INLINE_VISIBILITY weak_ptr(shared_ptr<_Yp> const& __r,
                    typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type = 0)
                    typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type = 0)
                         _NOEXCEPT;
                         _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     weak_ptr(weak_ptr const& __r) _NOEXCEPT;
     weak_ptr(weak_ptr const& __r) _NOEXCEPT;
-    template<class _Yp> weak_ptr(weak_ptr<_Yp> const& __r,
+    template<class _Yp> _LIBCPP_INLINE_VISIBILITY weak_ptr(weak_ptr<_Yp> const& __r,
                    typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type = 0)
                    typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type = 0)
                          _NOEXCEPT;
                          _NOEXCEPT;
 
 
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    _LIBCPP_INLINE_VISIBILITY
     weak_ptr(weak_ptr&& __r) _NOEXCEPT;
     weak_ptr(weak_ptr&& __r) _NOEXCEPT;
-    template<class _Yp> weak_ptr(weak_ptr<_Yp>&& __r,
+    template<class _Yp> _LIBCPP_INLINE_VISIBILITY weak_ptr(weak_ptr<_Yp>&& __r,
                    typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type = 0)
                    typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type = 0)
                          _NOEXCEPT;
                          _NOEXCEPT;
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
     ~weak_ptr();
     ~weak_ptr();
 
 
+    _LIBCPP_INLINE_VISIBILITY
     weak_ptr& operator=(weak_ptr const& __r) _NOEXCEPT;
     weak_ptr& operator=(weak_ptr const& __r) _NOEXCEPT;
     template<class _Yp>
     template<class _Yp>
         typename enable_if
         typename enable_if
@@ -5085,10 +5105,12 @@ public:
             is_convertible<_Yp*, element_type*>::value,
             is_convertible<_Yp*, element_type*>::value,
             weak_ptr&
             weak_ptr&
         >::type
         >::type
+        _LIBCPP_INLINE_VISIBILITY
         operator=(weak_ptr<_Yp> const& __r) _NOEXCEPT;
         operator=(weak_ptr<_Yp> const& __r) _NOEXCEPT;
 
 
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
+    _LIBCPP_INLINE_VISIBILITY
     weak_ptr& operator=(weak_ptr&& __r) _NOEXCEPT;
     weak_ptr& operator=(weak_ptr&& __r) _NOEXCEPT;
     template<class _Yp>
     template<class _Yp>
         typename enable_if
         typename enable_if
@@ -5096,6 +5118,7 @@ public:
             is_convertible<_Yp*, element_type*>::value,
             is_convertible<_Yp*, element_type*>::value,
             weak_ptr&
             weak_ptr&
         >::type
         >::type
+        _LIBCPP_INLINE_VISIBILITY
         operator=(weak_ptr<_Yp>&& __r) _NOEXCEPT;
         operator=(weak_ptr<_Yp>&& __r) _NOEXCEPT;
 
 
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
@@ -5106,9 +5129,12 @@ public:
             is_convertible<_Yp*, element_type*>::value,
             is_convertible<_Yp*, element_type*>::value,
             weak_ptr&
             weak_ptr&
         >::type
         >::type
+        _LIBCPP_INLINE_VISIBILITY
         operator=(shared_ptr<_Yp> const& __r) _NOEXCEPT;
         operator=(shared_ptr<_Yp> const& __r) _NOEXCEPT;
 
 
+    _LIBCPP_INLINE_VISIBILITY
     void swap(weak_ptr& __r) _NOEXCEPT;
     void swap(weak_ptr& __r) _NOEXCEPT;
+    _LIBCPP_INLINE_VISIBILITY
     void reset() _NOEXCEPT;
     void reset() _NOEXCEPT;
 
 
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -5132,7 +5158,7 @@ public:
 };
 };
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _LIBCPP_CONSTEXPR
 _LIBCPP_CONSTEXPR
 weak_ptr<_Tp>::weak_ptr() _NOEXCEPT
 weak_ptr<_Tp>::weak_ptr() _NOEXCEPT
     : __ptr_(0),
     : __ptr_(0),
@@ -5141,7 +5167,7 @@ weak_ptr<_Tp>::weak_ptr() _NOEXCEPT
 }
 }
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 weak_ptr<_Tp>::weak_ptr(weak_ptr const& __r) _NOEXCEPT
 weak_ptr<_Tp>::weak_ptr(weak_ptr const& __r) _NOEXCEPT
     : __ptr_(__r.__ptr_),
     : __ptr_(__r.__ptr_),
       __cntrl_(__r.__cntrl_)
       __cntrl_(__r.__cntrl_)
@@ -5152,7 +5178,7 @@ weak_ptr<_Tp>::weak_ptr(weak_ptr const& __r) _NOEXCEPT
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp>
 template<class _Yp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 weak_ptr<_Tp>::weak_ptr(shared_ptr<_Yp> const& __r,
 weak_ptr<_Tp>::weak_ptr(shared_ptr<_Yp> const& __r,
                         typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type)
                         typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type)
                          _NOEXCEPT
                          _NOEXCEPT
@@ -5165,7 +5191,7 @@ weak_ptr<_Tp>::weak_ptr(shared_ptr<_Yp> const& __r,
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp>
 template<class _Yp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 weak_ptr<_Tp>::weak_ptr(weak_ptr<_Yp> const& __r,
 weak_ptr<_Tp>::weak_ptr(weak_ptr<_Yp> const& __r,
                         typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type)
                         typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type)
          _NOEXCEPT
          _NOEXCEPT
@@ -5179,7 +5205,7 @@ weak_ptr<_Tp>::weak_ptr(weak_ptr<_Yp> const& __r,
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 weak_ptr<_Tp>::weak_ptr(weak_ptr&& __r) _NOEXCEPT
 weak_ptr<_Tp>::weak_ptr(weak_ptr&& __r) _NOEXCEPT
     : __ptr_(__r.__ptr_),
     : __ptr_(__r.__ptr_),
       __cntrl_(__r.__cntrl_)
       __cntrl_(__r.__cntrl_)
@@ -5190,7 +5216,7 @@ weak_ptr<_Tp>::weak_ptr(weak_ptr&& __r) _NOEXCEPT
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp>
 template<class _Yp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 weak_ptr<_Tp>::weak_ptr(weak_ptr<_Yp>&& __r,
 weak_ptr<_Tp>::weak_ptr(weak_ptr<_Yp>&& __r,
                         typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type)
                         typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type)
          _NOEXCEPT
          _NOEXCEPT
@@ -5211,7 +5237,7 @@ weak_ptr<_Tp>::~weak_ptr()
 }
 }
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 weak_ptr<_Tp>&
 weak_ptr<_Tp>&
 weak_ptr<_Tp>::operator=(weak_ptr const& __r) _NOEXCEPT
 weak_ptr<_Tp>::operator=(weak_ptr const& __r) _NOEXCEPT
 {
 {
@@ -5221,7 +5247,7 @@ weak_ptr<_Tp>::operator=(weak_ptr const& __r) _NOEXCEPT
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp>
 template<class _Yp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename enable_if
 typename enable_if
 <
 <
     is_convertible<_Yp*, _Tp*>::value,
     is_convertible<_Yp*, _Tp*>::value,
@@ -5236,7 +5262,7 @@ weak_ptr<_Tp>::operator=(weak_ptr<_Yp> const& __r) _NOEXCEPT
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 weak_ptr<_Tp>&
 weak_ptr<_Tp>&
 weak_ptr<_Tp>::operator=(weak_ptr&& __r) _NOEXCEPT
 weak_ptr<_Tp>::operator=(weak_ptr&& __r) _NOEXCEPT
 {
 {
@@ -5246,7 +5272,7 @@ weak_ptr<_Tp>::operator=(weak_ptr&& __r) _NOEXCEPT
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp>
 template<class _Yp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename enable_if
 typename enable_if
 <
 <
     is_convertible<_Yp*, _Tp*>::value,
     is_convertible<_Yp*, _Tp*>::value,
@@ -5262,7 +5288,7 @@ weak_ptr<_Tp>::operator=(weak_ptr<_Yp>&& __r) _NOEXCEPT
 
 
 template<class _Tp>
 template<class _Tp>
 template<class _Yp>
 template<class _Yp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename enable_if
 typename enable_if
 <
 <
     is_convertible<_Yp*, _Tp*>::value,
     is_convertible<_Yp*, _Tp*>::value,
@@ -5275,7 +5301,7 @@ weak_ptr<_Tp>::operator=(shared_ptr<_Yp> const& __r) _NOEXCEPT
 }
 }
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 weak_ptr<_Tp>::swap(weak_ptr& __r) _NOEXCEPT
 weak_ptr<_Tp>::swap(weak_ptr& __r) _NOEXCEPT
 {
 {
@@ -5292,7 +5318,7 @@ swap(weak_ptr<_Tp>& __x, weak_ptr<_Tp>& __y) _NOEXCEPT
 }
 }
 
 
 template<class _Tp>
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 weak_ptr<_Tp>::reset() _NOEXCEPT
 weak_ptr<_Tp>::reset() _NOEXCEPT
 {
 {

+ 8 - 7
include/random

@@ -3119,6 +3119,7 @@ public:
                independent_bits_engine<_Eng, _Wp, _UI>& __x);
                independent_bits_engine<_Eng, _Wp, _UI>& __x);
 
 
 private:
 private:
+    _LIBCPP_INLINE_VISIBILITY
     result_type __eval(false_type);
     result_type __eval(false_type);
     result_type __eval(true_type);
     result_type __eval(true_type);
 
 
@@ -3144,7 +3145,7 @@ private:
 };
 };
 
 
 template<class _Engine, size_t __w, class _UIntType>
 template<class _Engine, size_t __w, class _UIntType>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _UIntType
 _UIntType
 independent_bits_engine<_Engine, __w, _UIntType>::__eval(false_type)
 independent_bits_engine<_Engine, __w, _UIntType>::__eval(false_type)
 {
 {
@@ -3735,7 +3736,7 @@ public:
         _LIBCPP_INLINE_VISIBILITY
         _LIBCPP_INLINE_VISIBILITY
         result_type operator()(_URNG& __g)
         result_type operator()(_URNG& __g)
         {return (*this)(__g, __p_);}
         {return (*this)(__g, __p_);}
-    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);
+    template<class _URNG> _LIBCPP_INLINE_VISIBILITY result_type operator()(_URNG& __g, const param_type& __p);
 
 
     // property functions
     // property functions
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -3765,7 +3766,7 @@ public:
 
 
 template<class _RealType>
 template<class _RealType>
 template<class _URNG>
 template<class _URNG>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 typename uniform_real_distribution<_RealType>::result_type
 typename uniform_real_distribution<_RealType>::result_type
 uniform_real_distribution<_RealType>::operator()(_URNG& __g, const param_type& __p)
 uniform_real_distribution<_RealType>::operator()(_URNG& __g, const param_type& __p)
 {
 {
@@ -3851,7 +3852,7 @@ public:
         _LIBCPP_INLINE_VISIBILITY
         _LIBCPP_INLINE_VISIBILITY
         result_type operator()(_URNG& __g)
         result_type operator()(_URNG& __g)
         {return (*this)(__g, __p_);}
         {return (*this)(__g, __p_);}
-    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);
+    template<class _URNG> _LIBCPP_INLINE_VISIBILITY result_type operator()(_URNG& __g, const param_type& __p);
 
 
     // property functions
     // property functions
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -3878,7 +3879,7 @@ public:
 };
 };
 
 
 template<class _URNG>
 template<class _URNG>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 bernoulli_distribution::result_type
 bernoulli_distribution::result_type
 bernoulli_distribution::operator()(_URNG& __g, const param_type& __p)
 bernoulli_distribution::operator()(_URNG& __g, const param_type& __p)
 {
 {
@@ -5522,7 +5523,7 @@ public:
         _LIBCPP_INLINE_VISIBILITY
         _LIBCPP_INLINE_VISIBILITY
         result_type operator()(_URNG& __g)
         result_type operator()(_URNG& __g)
         {return (*this)(__g, __p_);}
         {return (*this)(__g, __p_);}
-    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);
+    template<class _URNG> _LIBCPP_INLINE_VISIBILITY result_type operator()(_URNG& __g, const param_type& __p);
 
 
     // property functions
     // property functions
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -5552,7 +5553,7 @@ public:
 
 
 template <class _RealType>
 template <class _RealType>
 template<class _URNG>
 template<class _URNG>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _RealType
 _RealType
 cauchy_distribution<_RealType>::operator()(_URNG& __g, const param_type& __p)
 cauchy_distribution<_RealType>::operator()(_URNG& __g, const param_type& __p)
 {
 {

+ 2 - 1
include/regex

@@ -1048,6 +1048,7 @@ private:
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
     int __regex_traits_value(char __ch, int __radix) const
     int __regex_traits_value(char __ch, int __radix) const
         {return __regex_traits_value(static_cast<unsigned char>(__ch), __radix);}
         {return __regex_traits_value(static_cast<unsigned char>(__ch), __radix);}
+    _LIBCPP_INLINE_VISIBILITY
     int __regex_traits_value(wchar_t __ch, int __radix) const;
     int __regex_traits_value(wchar_t __ch, int __radix) const;
 };
 };
 
 
@@ -1270,7 +1271,7 @@ regex_traits<_CharT>::__regex_traits_value(unsigned char __ch, int __radix)
 }
 }
 
 
 template <class _CharT>
 template <class _CharT>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 int
 int
 regex_traits<_CharT>::__regex_traits_value(wchar_t __ch, int __radix) const
 regex_traits<_CharT>::__regex_traits_value(wchar_t __ch, int __radix) const
 {
 {

+ 32 - 16
include/string

@@ -517,10 +517,14 @@ struct _LIBCPP_TYPE_VIS_ONLY char_traits
         {return __c1 < __c2;}
         {return __c1 < __c2;}
 
 
     static int              compare(const char_type* __s1, const char_type* __s2, size_t __n);
     static int              compare(const char_type* __s1, const char_type* __s2, size_t __n);
+    _LIBCPP_INLINE_VISIBILITY
     static size_t           length(const char_type* __s);
     static size_t           length(const char_type* __s);
+    _LIBCPP_INLINE_VISIBILITY
     static const char_type* find(const char_type* __s, size_t __n, const char_type& __a);
     static const char_type* find(const char_type* __s, size_t __n, const char_type& __a);
     static char_type*       move(char_type* __s1, const char_type* __s2, size_t __n);
     static char_type*       move(char_type* __s1, const char_type* __s2, size_t __n);
+    _LIBCPP_INLINE_VISIBILITY
     static char_type*       copy(char_type* __s1, const char_type* __s2, size_t __n);
     static char_type*       copy(char_type* __s1, const char_type* __s2, size_t __n);
+    _LIBCPP_INLINE_VISIBILITY
     static char_type*       assign(char_type* __s, size_t __n, char_type __a);
     static char_type*       assign(char_type* __s, size_t __n, char_type __a);
 
 
     static inline _LIBCPP_CONSTEXPR int_type  not_eof(int_type __c) _NOEXCEPT
     static inline _LIBCPP_CONSTEXPR int_type  not_eof(int_type __c) _NOEXCEPT
@@ -550,7 +554,7 @@ char_traits<_CharT>::compare(const char_type* __s1, const char_type* __s2, size_
 }
 }
 
 
 template <class _CharT>
 template <class _CharT>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 size_t
 size_t
 char_traits<_CharT>::length(const char_type* __s)
 char_traits<_CharT>::length(const char_type* __s)
 {
 {
@@ -561,7 +565,7 @@ char_traits<_CharT>::length(const char_type* __s)
 }
 }
 
 
 template <class _CharT>
 template <class _CharT>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 const _CharT*
 const _CharT*
 char_traits<_CharT>::find(const char_type* __s, size_t __n, const char_type& __a)
 char_traits<_CharT>::find(const char_type* __s, size_t __n, const char_type& __a)
 {
 {
@@ -595,7 +599,7 @@ char_traits<_CharT>::move(char_type* __s1, const char_type* __s2, size_t __n)
 }
 }
 
 
 template <class _CharT>
 template <class _CharT>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _CharT*
 _CharT*
 char_traits<_CharT>::copy(char_type* __s1, const char_type* __s2, size_t __n)
 char_traits<_CharT>::copy(char_type* __s1, const char_type* __s2, size_t __n)
 {
 {
@@ -607,7 +611,7 @@ char_traits<_CharT>::copy(char_type* __s1, const char_type* __s2, size_t __n)
 }
 }
 
 
 template <class _CharT>
 template <class _CharT>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 _CharT*
 _CharT*
 char_traits<_CharT>::assign(char_type* __s, size_t __n, char_type __a)
 char_traits<_CharT>::assign(char_type* __s, size_t __n, char_type __a)
 {
 {
@@ -726,11 +730,17 @@ struct _LIBCPP_TYPE_VIS_ONLY char_traits<char16_t>
     static inline _LIBCPP_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT
     static inline _LIBCPP_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT
         {return __c1 < __c2;}
         {return __c1 < __c2;}
 
 
+    _LIBCPP_INLINE_VISIBILITY
     static int              compare(const char_type* __s1, const char_type* __s2, size_t __n);
     static int              compare(const char_type* __s1, const char_type* __s2, size_t __n);
+    _LIBCPP_INLINE_VISIBILITY
     static size_t           length(const char_type* __s);
     static size_t           length(const char_type* __s);
+    _LIBCPP_INLINE_VISIBILITY
     static const char_type* find(const char_type* __s, size_t __n, const char_type& __a);
     static const char_type* find(const char_type* __s, size_t __n, const char_type& __a);
+    _LIBCPP_INLINE_VISIBILITY
     static char_type*       move(char_type* __s1, const char_type* __s2, size_t __n);
     static char_type*       move(char_type* __s1, const char_type* __s2, size_t __n);
+    _LIBCPP_INLINE_VISIBILITY
     static char_type*       copy(char_type* __s1, const char_type* __s2, size_t __n);
     static char_type*       copy(char_type* __s1, const char_type* __s2, size_t __n);
+    _LIBCPP_INLINE_VISIBILITY
     static char_type*       assign(char_type* __s, size_t __n, char_type __a);
     static char_type*       assign(char_type* __s, size_t __n, char_type __a);
 
 
     static inline _LIBCPP_CONSTEXPR int_type  not_eof(int_type __c) _NOEXCEPT
     static inline _LIBCPP_CONSTEXPR int_type  not_eof(int_type __c) _NOEXCEPT
@@ -745,7 +755,7 @@ struct _LIBCPP_TYPE_VIS_ONLY char_traits<char16_t>
         {return int_type(0xFFFF);}
         {return int_type(0xFFFF);}
 };
 };
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 int
 int
 char_traits<char16_t>::compare(const char_type* __s1, const char_type* __s2, size_t __n)
 char_traits<char16_t>::compare(const char_type* __s1, const char_type* __s2, size_t __n)
 {
 {
@@ -759,7 +769,7 @@ char_traits<char16_t>::compare(const char_type* __s1, const char_type* __s2, siz
     return 0;
     return 0;
 }
 }
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 size_t
 size_t
 char_traits<char16_t>::length(const char_type* __s)
 char_traits<char16_t>::length(const char_type* __s)
 {
 {
@@ -769,7 +779,7 @@ char_traits<char16_t>::length(const char_type* __s)
     return __len;
     return __len;
 }
 }
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 const char16_t*
 const char16_t*
 char_traits<char16_t>::find(const char_type* __s, size_t __n, const char_type& __a)
 char_traits<char16_t>::find(const char_type* __s, size_t __n, const char_type& __a)
 {
 {
@@ -782,7 +792,7 @@ char_traits<char16_t>::find(const char_type* __s, size_t __n, const char_type& _
     return 0;
     return 0;
 }
 }
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 char16_t*
 char16_t*
 char_traits<char16_t>::move(char_type* __s1, const char_type* __s2, size_t __n)
 char_traits<char16_t>::move(char_type* __s1, const char_type* __s2, size_t __n)
 {
 {
@@ -802,7 +812,7 @@ char_traits<char16_t>::move(char_type* __s1, const char_type* __s2, size_t __n)
     return __r;
     return __r;
 }
 }
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 char16_t*
 char16_t*
 char_traits<char16_t>::copy(char_type* __s1, const char_type* __s2, size_t __n)
 char_traits<char16_t>::copy(char_type* __s1, const char_type* __s2, size_t __n)
 {
 {
@@ -813,7 +823,7 @@ char_traits<char16_t>::copy(char_type* __s1, const char_type* __s2, size_t __n)
     return __r;
     return __r;
 }
 }
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 char16_t*
 char16_t*
 char_traits<char16_t>::assign(char_type* __s, size_t __n, char_type __a)
 char_traits<char16_t>::assign(char_type* __s, size_t __n, char_type __a)
 {
 {
@@ -839,11 +849,17 @@ struct _LIBCPP_TYPE_VIS_ONLY char_traits<char32_t>
     static inline _LIBCPP_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT
     static inline _LIBCPP_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT
         {return __c1 < __c2;}
         {return __c1 < __c2;}
 
 
+    _LIBCPP_INLINE_VISIBILITY
     static int              compare(const char_type* __s1, const char_type* __s2, size_t __n);
     static int              compare(const char_type* __s1, const char_type* __s2, size_t __n);
+    _LIBCPP_INLINE_VISIBILITY
     static size_t           length(const char_type* __s);
     static size_t           length(const char_type* __s);
+    _LIBCPP_INLINE_VISIBILITY
     static const char_type* find(const char_type* __s, size_t __n, const char_type& __a);
     static const char_type* find(const char_type* __s, size_t __n, const char_type& __a);
+    _LIBCPP_INLINE_VISIBILITY
     static char_type*       move(char_type* __s1, const char_type* __s2, size_t __n);
     static char_type*       move(char_type* __s1, const char_type* __s2, size_t __n);
+    _LIBCPP_INLINE_VISIBILITY
     static char_type*       copy(char_type* __s1, const char_type* __s2, size_t __n);
     static char_type*       copy(char_type* __s1, const char_type* __s2, size_t __n);
+    _LIBCPP_INLINE_VISIBILITY
     static char_type*       assign(char_type* __s, size_t __n, char_type __a);
     static char_type*       assign(char_type* __s, size_t __n, char_type __a);
 
 
     static inline _LIBCPP_CONSTEXPR int_type  not_eof(int_type __c) _NOEXCEPT
     static inline _LIBCPP_CONSTEXPR int_type  not_eof(int_type __c) _NOEXCEPT
@@ -858,7 +874,7 @@ struct _LIBCPP_TYPE_VIS_ONLY char_traits<char32_t>
         {return int_type(0xFFFFFFFF);}
         {return int_type(0xFFFFFFFF);}
 };
 };
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 int
 int
 char_traits<char32_t>::compare(const char_type* __s1, const char_type* __s2, size_t __n)
 char_traits<char32_t>::compare(const char_type* __s1, const char_type* __s2, size_t __n)
 {
 {
@@ -872,7 +888,7 @@ char_traits<char32_t>::compare(const char_type* __s1, const char_type* __s2, siz
     return 0;
     return 0;
 }
 }
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 size_t
 size_t
 char_traits<char32_t>::length(const char_type* __s)
 char_traits<char32_t>::length(const char_type* __s)
 {
 {
@@ -882,7 +898,7 @@ char_traits<char32_t>::length(const char_type* __s)
     return __len;
     return __len;
 }
 }
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 const char32_t*
 const char32_t*
 char_traits<char32_t>::find(const char_type* __s, size_t __n, const char_type& __a)
 char_traits<char32_t>::find(const char_type* __s, size_t __n, const char_type& __a)
 {
 {
@@ -895,7 +911,7 @@ char_traits<char32_t>::find(const char_type* __s, size_t __n, const char_type& _
     return 0;
     return 0;
 }
 }
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 char32_t*
 char32_t*
 char_traits<char32_t>::move(char_type* __s1, const char_type* __s2, size_t __n)
 char_traits<char32_t>::move(char_type* __s1, const char_type* __s2, size_t __n)
 {
 {
@@ -915,7 +931,7 @@ char_traits<char32_t>::move(char_type* __s1, const char_type* __s2, size_t __n)
     return __r;
     return __r;
 }
 }
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 char32_t*
 char32_t*
 char_traits<char32_t>::copy(char_type* __s1, const char_type* __s2, size_t __n)
 char_traits<char32_t>::copy(char_type* __s1, const char_type* __s2, size_t __n)
 {
 {
@@ -926,7 +942,7 @@ char_traits<char32_t>::copy(char_type* __s1, const char_type* __s2, size_t __n)
     return __r;
     return __r;
 }
 }
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 char32_t*
 char32_t*
 char_traits<char32_t>::assign(char_type* __s, size_t __n, char_type __a)
 char_traits<char32_t>::assign(char_type* __s, size_t __n, char_type __a)
 {
 {

+ 2 - 1
include/thread

@@ -318,6 +318,7 @@ public:
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
     thread(thread&& __t) _NOEXCEPT : __t_(__t.__t_) {__t.__t_ = 0;}
     thread(thread&& __t) _NOEXCEPT : __t_(__t.__t_) {__t.__t_ = 0;}
+    _LIBCPP_INLINE_VISIBILITY
     thread& operator=(thread&& __t) _NOEXCEPT;
     thread& operator=(thread&& __t) _NOEXCEPT;
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
@@ -399,7 +400,7 @@ thread::thread(_Fp __f)
 
 
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 thread&
 thread&
 thread::operator=(thread&& __t) _NOEXCEPT
 thread::operator=(thread&& __t) _NOEXCEPT
 {
 {

Fichier diff supprimé car celui-ci est trop grand
+ 147 - 49
include/valarray


+ 6 - 3
include/vector

@@ -685,9 +685,11 @@ public:
     _LIBCPP_INLINE_VISIBILITY void push_back(value_type&& __x);
     _LIBCPP_INLINE_VISIBILITY void push_back(value_type&& __x);
 #ifndef _LIBCPP_HAS_NO_VARIADICS
 #ifndef _LIBCPP_HAS_NO_VARIADICS
     template <class... _Args>
     template <class... _Args>
+        _LIBCPP_INLINE_VISIBILITY
         void emplace_back(_Args&&... __args);
         void emplace_back(_Args&&... __args);
 #endif  // _LIBCPP_HAS_NO_VARIADICS
 #endif  // _LIBCPP_HAS_NO_VARIADICS
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    _LIBCPP_INLINE_VISIBILITY
     void pop_back();
     void pop_back();
 
 
     iterator insert(const_iterator __position, const_reference __x);
     iterator insert(const_iterator __position, const_reference __x);
@@ -766,6 +768,7 @@ private:
     void deallocate() _NOEXCEPT;
     void deallocate() _NOEXCEPT;
     _LIBCPP_INLINE_VISIBILITY size_type __recommend(size_type __new_size) const;
     _LIBCPP_INLINE_VISIBILITY size_type __recommend(size_type __new_size) const;
     void __construct_at_end(size_type __n);
     void __construct_at_end(size_type __n);
+    _LIBCPP_INLINE_VISIBILITY
     void __construct_at_end(size_type __n, const_reference __x);
     void __construct_at_end(size_type __n, const_reference __x);
     template <class _ForwardIterator>
     template <class _ForwardIterator>
         typename enable_if
         typename enable_if
@@ -990,7 +993,7 @@ vector<_Tp, _Allocator>::__construct_at_end(size_type __n)
 //  Postcondition:  size() == old size() + __n
 //  Postcondition:  size() == old size() + __n
 //  Postcondition:  [i] == __x for all i in [size() - __n, __n)
 //  Postcondition:  [i] == __x for all i in [size() - __n, __n)
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 vector<_Tp, _Allocator>::__construct_at_end(size_type __n, const_reference __x)
 vector<_Tp, _Allocator>::__construct_at_end(size_type __n, const_reference __x)
 {
 {
@@ -1627,7 +1630,7 @@ vector<_Tp, _Allocator>::__emplace_back_slow_path(_Args&&... __args)
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
 template <class... _Args>
 template <class... _Args>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 vector<_Tp, _Allocator>::emplace_back(_Args&&... __args)
 vector<_Tp, _Allocator>::emplace_back(_Args&&... __args)
 {
 {
@@ -1648,7 +1651,7 @@ vector<_Tp, _Allocator>::emplace_back(_Args&&... __args)
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
 template <class _Tp, class _Allocator>
 template <class _Tp, class _Allocator>
-inline _LIBCPP_INLINE_VISIBILITY
+inline
 void
 void
 vector<_Tp, _Allocator>::pop_back()
 vector<_Tp, _Allocator>::pop_back()
 {
 {

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff