Jelajahi Sumber

[NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS

The name _LIBCPP_TYPE_VIS_ONLY is no longer accurate because both
_LIBCPP_TYPE_VIS and _LIBCPP_TYPE_VIS_ONLY expand to
__attribute__((__type_visibility__)) with Clang. The only remaining difference
is that _LIBCPP_TYPE_VIS_ONLY can be applied to templates whereas
_LIBCPP_TYPE_VIS cannot (due to dllimport/dllexport not being allowed on
templates).

This patch renames _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@291035 91177308-0d34-0410-b5e6-96231b3b80d8
Eric Fiselier 8 tahun lalu
induk
melakukan
c3589a8305
69 mengubah file dengan 723 tambahan dan 722 penghapusan
  1. 7 6
      docs/DesignDocs/VisibilityMacros.rst
  2. 3 3
      include/__config
  3. 1 1
      include/__debug
  4. 4 4
      include/__functional_03
  5. 7 7
      include/__functional_base
  6. 22 22
      include/__hash_table
  7. 8 8
      include/__locale
  8. 3 3
      include/__mutex_base
  9. 1 1
      include/__nullptr
  10. 5 5
      include/__string
  11. 19 19
      include/__tree
  12. 17 17
      include/__tuple
  13. 5 5
      include/any
  14. 3 3
      include/array
  15. 3 3
      include/bitset
  16. 7 7
      include/chrono
  17. 3 3
      include/codecvt
  18. 7 7
      include/complex
  19. 6 6
      include/deque
  20. 2 2
      include/experimental/any
  21. 2 2
      include/experimental/dynarray
  22. 3 3
      include/experimental/memory_resource
  23. 1 1
      include/experimental/optional
  24. 2 2
      include/experimental/string_view
  25. 4 4
      include/experimental/type_traits
  26. 1 1
      include/experimental/utility
  27. 12 12
      include/ext/__hash
  28. 13 13
      include/ext/hash_map
  29. 2 2
      include/ext/hash_set
  30. 7 7
      include/forward_list
  31. 4 4
      include/fstream
  32. 78 78
      include/functional
  33. 15 15
      include/future
  34. 1 1
      include/initializer_list
  35. 3 3
      include/ios
  36. 20 20
      include/iosfwd
  37. 4 4
      include/istream
  38. 18 18
      include/iterator
  39. 4 4
      include/limits
  40. 5 5
      include/list
  41. 16 16
      include/locale
  42. 12 12
      include/map
  43. 29 29
      include/memory
  44. 4 4
      include/mutex
  45. 1 1
      include/optional
  46. 3 3
      include/ostream
  47. 5 5
      include/queue
  48. 48 48
      include/random
  49. 11 11
      include/ratio
  50. 8 8
      include/regex
  51. 1 1
      include/scoped_allocator
  52. 2 2
      include/set
  53. 4 4
      include/sstream
  54. 3 3
      include/stack
  55. 1 1
      include/streambuf
  56. 4 4
      include/string
  57. 2 2
      include/string_view
  58. 6 6
      include/system_error
  59. 3 3
      include/thread
  60. 3 3
      include/tuple
  61. 143 143
      include/type_traits
  62. 3 3
      include/typeindex
  63. 13 13
      include/unordered_map
  64. 2 2
      include/unordered_set
  65. 6 6
      include/utility
  66. 18 18
      include/valarray
  67. 33 33
      include/variant
  68. 4 4
      include/vector
  69. 3 3
      src/experimental/memory_resource.cpp

+ 7 - 6
docs/DesignDocs/VisibilityMacros.rst

@@ -49,13 +49,13 @@ Visibility Macros
   attribute. With GCC the `visibility(...)` attribute is used and member
   attribute. With GCC the `visibility(...)` attribute is used and member
   functions are affected.
   functions are affected.
 
 
-**_LIBCPP_TYPE_VIS_ONLY**
-  The same as `_LIBCPP_TYPE_VIS` except that it may be applied to templates.
+**_LIBCPP_TEMPLATE_ONLY**
+  The same as `_LIBCPP_TYPE_VIS` except that it may be applied to class
+  templates.
 
 
   **Windows Behavior**: DLLs do not support dllimport/export on class templates.
   **Windows Behavior**: DLLs do not support dllimport/export on class templates.
   The macro has an empty definition on this platform.
   The macro has an empty definition on this platform.
 
 
-  Note: This macro should be renamed `_LIBCPP_TEMPLATE_TYPE_VIS`.
 
 
 **_LIBCPP_ENUM_VIS**
 **_LIBCPP_ENUM_VIS**
   Mark the typeinfo of an enum as having default visibility. This attribute
   Mark the typeinfo of an enum as having default visibility. This attribute
@@ -74,14 +74,15 @@ Visibility Macros
   a `_LIBCPP_EXTERN_TEMPLATE` declaration as being exported by the libc++ library.
   a `_LIBCPP_EXTERN_TEMPLATE` declaration as being exported by the libc++ library.
   This attribute must be specified on all extern class template declarations.
   This attribute must be specified on all extern class template declarations.
 
 
-  This macro is used to override the `_LIBCPP_TYPE_VIS_ONLY` attribute
+  This macro is used to override the `_LIBCPP_TEMPLATE_VIS` attribute
   specified on the primary template and to export the member functions produced
   specified on the primary template and to export the member functions produced
   by the explicit instantiation in the dylib.
   by the explicit instantiation in the dylib.
 
 
   **GCC Behavior**: GCC ignores visibility attributes applied the type in
   **GCC Behavior**: GCC ignores visibility attributes applied the type in
   extern template declarations and applying an attribute results in a warning.
   extern template declarations and applying an attribute results in a warning.
-  However since `_LIBCPP_TYPE_VIS_ONLY` is the same as `_LIBCPP_TYPE_VIS` the
-  visibility is already correct. The macro has an empty definition with GCC.
+   However since `_LIBCPP_TEMPLATE_VIS` is the same as
+  `__attribute__((visibility("default"))` the visibility is already correct.
+  The macro has an empty definition with GCC.
 
 
   **Windows Behavior**: `extern template` and `dllexport` are fundamentally
   **Windows Behavior**: `extern template` and `dllexport` are fundamentally
   incompatible *on a template class* on Windows; the former suppresses
   incompatible *on a template class* on Windows; the former suppresses

+ 3 - 3
include/__config

@@ -557,7 +557,7 @@ namespace std {
 #define _LIBCPP_FUNC_VIS            _LIBCPP_DLL_VIS
 #define _LIBCPP_FUNC_VIS            _LIBCPP_DLL_VIS
 #define _LIBCPP_EXCEPTION_ABI       _LIBCPP_DLL_VIS
 #define _LIBCPP_EXCEPTION_ABI       _LIBCPP_DLL_VIS
 #define _LIBCPP_HIDDEN
 #define _LIBCPP_HIDDEN
-#define _LIBCPP_TYPE_VIS_ONLY
+#define _LIBCPP_TEMPLATE_VIS
 #define _LIBCPP_FUNC_VIS_ONLY
 #define _LIBCPP_FUNC_VIS_ONLY
 #define _LIBCPP_ENUM_VIS
 #define _LIBCPP_ENUM_VIS
 
 
@@ -600,8 +600,8 @@ namespace std {
 #  endif
 #  endif
 #endif
 #endif
 
 
-#ifndef _LIBCPP_TYPE_VIS_ONLY
-# define _LIBCPP_TYPE_VIS_ONLY _LIBCPP_TYPE_VIS
+#ifndef _LIBCPP_TEMPLATE_VIS
+# define _LIBCPP_TEMPLATE_VIS _LIBCPP_TYPE_VIS
 #endif
 #endif
 
 
 #ifndef _LIBCPP_FUNC_VIS_ONLY
 #ifndef _LIBCPP_FUNC_VIS_ONLY

+ 1 - 1
include/__debug

@@ -56,7 +56,7 @@ class _LIBCPP_EXCEPTION_ABI __libcpp_debug_exception;
 
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
-struct _LIBCPP_TYPE_VIS_ONLY __libcpp_debug_info {
+struct _LIBCPP_TEMPLATE_VIS __libcpp_debug_info {
   _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR
   _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR
   __libcpp_debug_info()
   __libcpp_debug_info()
       : __file_(nullptr), __line_(-1), __pred_(nullptr), __msg_(nullptr) {}
       : __file_(nullptr), __line_(-1), __pred_(nullptr), __msg_(nullptr) {}

+ 4 - 4
include/__functional_03

@@ -445,7 +445,7 @@ __func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::target_type() const
 }  // __function
 }  // __function
 
 
 template<class _Rp>
 template<class _Rp>
-class _LIBCPP_TYPE_VIS_ONLY function<_Rp()>
+class _LIBCPP_TEMPLATE_VIS function<_Rp()>
 {
 {
     typedef __function::__base<_Rp()> __base;
     typedef __function::__base<_Rp()> __base;
     aligned_storage<3*sizeof(void*)>::type __buf_;
     aligned_storage<3*sizeof(void*)>::type __buf_;
@@ -720,7 +720,7 @@ function<_Rp()>::target() const
 #endif  // _LIBCPP_NO_RTTI
 #endif  // _LIBCPP_NO_RTTI
 
 
 template<class _Rp, class _A0>
 template<class _Rp, class _A0>
-class _LIBCPP_TYPE_VIS_ONLY function<_Rp(_A0)>
+class _LIBCPP_TEMPLATE_VIS function<_Rp(_A0)>
     : public unary_function<_A0, _Rp>
     : public unary_function<_A0, _Rp>
 {
 {
     typedef __function::__base<_Rp(_A0)> __base;
     typedef __function::__base<_Rp(_A0)> __base;
@@ -996,7 +996,7 @@ function<_Rp(_A0)>::target() const
 #endif  // _LIBCPP_NO_RTTI
 #endif  // _LIBCPP_NO_RTTI
 
 
 template<class _Rp, class _A0, class _A1>
 template<class _Rp, class _A0, class _A1>
-class _LIBCPP_TYPE_VIS_ONLY function<_Rp(_A0, _A1)>
+class _LIBCPP_TEMPLATE_VIS function<_Rp(_A0, _A1)>
     : public binary_function<_A0, _A1, _Rp>
     : public binary_function<_A0, _A1, _Rp>
 {
 {
     typedef __function::__base<_Rp(_A0, _A1)> __base;
     typedef __function::__base<_Rp(_A0, _A1)> __base;
@@ -1272,7 +1272,7 @@ function<_Rp(_A0, _A1)>::target() const
 #endif  // _LIBCPP_NO_RTTI
 #endif  // _LIBCPP_NO_RTTI
 
 
 template<class _Rp, class _A0, class _A1, class _A2>
 template<class _Rp, class _A0, class _A1, class _A2>
-class _LIBCPP_TYPE_VIS_ONLY function<_Rp(_A0, _A1, _A2)>
+class _LIBCPP_TEMPLATE_VIS function<_Rp(_A0, _A1, _A2)>
 {
 {
     typedef __function::__base<_Rp(_A0, _A1, _A2)> __base;
     typedef __function::__base<_Rp(_A0, _A1, _A2)> __base;
     aligned_storage<3*sizeof(void*)>::type __buf_;
     aligned_storage<3*sizeof(void*)>::type __buf_;

+ 7 - 7
include/__functional_base

@@ -24,14 +24,14 @@
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
 template <class _Arg, class _Result>
 template <class _Arg, class _Result>
-struct _LIBCPP_TYPE_VIS_ONLY unary_function
+struct _LIBCPP_TEMPLATE_VIS unary_function
 {
 {
     typedef _Arg    argument_type;
     typedef _Arg    argument_type;
     typedef _Result result_type;
     typedef _Result result_type;
 };
 };
 
 
 template <class _Arg1, class _Arg2, class _Result>
 template <class _Arg1, class _Arg2, class _Result>
-struct _LIBCPP_TYPE_VIS_ONLY binary_function
+struct _LIBCPP_TEMPLATE_VIS binary_function
 {
 {
     typedef _Arg1   first_argument_type;
     typedef _Arg1   first_argument_type;
     typedef _Arg2   second_argument_type;
     typedef _Arg2   second_argument_type;
@@ -54,7 +54,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY less : binary_function<_Tp, _Tp, bool>
+struct _LIBCPP_TEMPLATE_VIS less : binary_function<_Tp, _Tp, bool>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY 
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY 
     bool operator()(const _Tp& __x, const _Tp& __y) const
     bool operator()(const _Tp& __x, const _Tp& __y) const
@@ -63,7 +63,7 @@ struct _LIBCPP_TYPE_VIS_ONLY less : binary_function<_Tp, _Tp, bool>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY less<void>
+struct _LIBCPP_TEMPLATE_VIS less<void>
 {
 {
     template <class _T1, class _T2> 
     template <class _T1, class _T2> 
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -382,7 +382,7 @@ struct __invoke_void_return_wrapper<void>
 };
 };
 
 
 template <class _Tp>
 template <class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY reference_wrapper
+class _LIBCPP_TEMPLATE_VIS reference_wrapper
     : public __weak_result_type<_Tp>
     : public __weak_result_type<_Tp>
 {
 {
 public:
 public:
@@ -585,7 +585,7 @@ public:
 
 
 // allocator_arg_t
 // allocator_arg_t
 
 
-struct _LIBCPP_TYPE_VIS_ONLY allocator_arg_t { };
+struct _LIBCPP_TEMPLATE_VIS allocator_arg_t { };
 
 
 #if defined(_LIBCPP_HAS_NO_CONSTEXPR) || defined(_LIBCPP_BUILDING_MEMORY)
 #if defined(_LIBCPP_HAS_NO_CONSTEXPR) || defined(_LIBCPP_BUILDING_MEMORY)
 extern const allocator_arg_t allocator_arg;
 extern const allocator_arg_t allocator_arg;
@@ -620,7 +620,7 @@ struct __uses_allocator<_Tp, _Alloc, false>
 };
 };
 
 
 template <class _Tp, class _Alloc>
 template <class _Tp, class _Alloc>
-struct _LIBCPP_TYPE_VIS_ONLY uses_allocator
+struct _LIBCPP_TEMPLATE_VIS uses_allocator
     : public __uses_allocator<_Tp, _Alloc>
     : public __uses_allocator<_Tp, _Alloc>
 {
 {
 };
 };

+ 22 - 22
include/__hash_table

@@ -133,12 +133,12 @@ __next_hash_pow2(size_t __n)
 
 
 template <class _Tp, class _Hash, class _Equal, class _Alloc> class __hash_table;
 template <class _Tp, class _Hash, class _Equal, class _Alloc> class __hash_table;
 
 
-template <class _NodePtr>      class _LIBCPP_TYPE_VIS_ONLY __hash_iterator;
-template <class _ConstNodePtr> class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator;
-template <class _NodePtr>      class _LIBCPP_TYPE_VIS_ONLY __hash_local_iterator;
-template <class _ConstNodePtr> class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator;
-template <class _HashIterator> class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator;
-template <class _HashIterator> class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator;
+template <class _NodePtr>      class _LIBCPP_TEMPLATE_VIS __hash_iterator;
+template <class _ConstNodePtr> class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;
+template <class _NodePtr>      class _LIBCPP_TEMPLATE_VIS __hash_local_iterator;
+template <class _ConstNodePtr> class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;
+template <class _HashIterator> class _LIBCPP_TEMPLATE_VIS __hash_map_iterator;
+template <class _HashIterator> class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator;
 
 
 template <class _Tp>
 template <class _Tp>
 struct __hash_key_value_types {
 struct __hash_key_value_types {
@@ -285,7 +285,7 @@ struct __make_hash_node_types {
 };
 };
 
 
 template <class _NodePtr>
 template <class _NodePtr>
-class _LIBCPP_TYPE_VIS_ONLY __hash_iterator
+class _LIBCPP_TEMPLATE_VIS __hash_iterator
 {
 {
     typedef __hash_node_types<_NodePtr> _NodeTypes;
     typedef __hash_node_types<_NodePtr> _NodeTypes;
     typedef _NodePtr                            __node_pointer;
     typedef _NodePtr                            __node_pointer;
@@ -384,14 +384,14 @@ private:
         {}
         {}
 #endif
 #endif
     template <class, class, class, class> friend class __hash_table;
     template <class, class, class, class> friend class __hash_table;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator;
-    template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_map;
-    template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_multimap;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_map_iterator;
+    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_map;
+    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_multimap;
 };
 };
 
 
 template <class _NodePtr>
 template <class _NodePtr>
-class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator
+class _LIBCPP_TEMPLATE_VIS __hash_const_iterator
 {
 {
     static_assert(!is_const<typename pointer_traits<_NodePtr>::element_type>::value, "");
     static_assert(!is_const<typename pointer_traits<_NodePtr>::element_type>::value, "");
     typedef __hash_node_types<_NodePtr> _NodeTypes;
     typedef __hash_node_types<_NodePtr> _NodeTypes;
@@ -500,13 +500,13 @@ private:
         {}
         {}
 #endif
 #endif
     template <class, class, class, class> friend class __hash_table;
     template <class, class, class, class> friend class __hash_table;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator;
-    template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_map;
-    template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_multimap;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator;
+    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_map;
+    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_multimap;
 };
 };
 
 
 template <class _NodePtr>
 template <class _NodePtr>
-class _LIBCPP_TYPE_VIS_ONLY __hash_local_iterator
+class _LIBCPP_TEMPLATE_VIS __hash_local_iterator
 {
 {
     typedef __hash_node_types<_NodePtr> _NodeTypes;
     typedef __hash_node_types<_NodePtr> _NodeTypes;
     typedef _NodePtr                            __node_pointer;
     typedef _NodePtr                            __node_pointer;
@@ -624,12 +624,12 @@ private:
         }
         }
 #endif
 #endif
     template <class, class, class, class> friend class __hash_table;
     template <class, class, class, class> friend class __hash_table;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_map_iterator;
 };
 };
 
 
 template <class _ConstNodePtr>
 template <class _ConstNodePtr>
-class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator
+class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator
 {
 {
     typedef __hash_node_types<_ConstNodePtr> _NodeTypes;
     typedef __hash_node_types<_ConstNodePtr> _NodeTypes;
     typedef _ConstNodePtr                       __node_pointer;
     typedef _ConstNodePtr                       __node_pointer;
@@ -765,7 +765,7 @@ private:
         }
         }
 #endif
 #endif
     template <class, class, class, class> friend class __hash_table;
     template <class, class, class, class> friend class __hash_table;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator;
 };
 };
 
 
 template <class _Alloc>
 template <class _Alloc>
@@ -1324,8 +1324,8 @@ private:
     void __deallocate(__next_pointer __np) _NOEXCEPT;
     void __deallocate(__next_pointer __np) _NOEXCEPT;
     __next_pointer __detach() _NOEXCEPT;
     __next_pointer __detach() _NOEXCEPT;
 
 
-    template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_map;
-    template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_multimap;
+    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_map;
+    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_multimap;
 };
 };
 
 
 template <class _Tp, class _Hash, class _Equal, class _Alloc>
 template <class _Tp, class _Hash, class _Equal, class _Alloc>

+ 8 - 8
include/__locale

@@ -190,7 +190,7 @@ use_facet(const locale& __l)
 // template <class _CharT> class collate;
 // template <class _CharT> class collate;
 
 
 template <class _CharT>
 template <class _CharT>
-class _LIBCPP_TYPE_VIS_ONLY collate
+class _LIBCPP_TEMPLATE_VIS collate
     : public locale::facet
     : public locale::facet
 {
 {
 public:
 public:
@@ -274,7 +274,7 @@ _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS collate<wchar_t>
 
 
 // template <class CharT> class collate_byname;
 // template <class CharT> class collate_byname;
 
 
-template <class _CharT> class _LIBCPP_TYPE_VIS_ONLY collate_byname;
+template <class _CharT> class _LIBCPP_TEMPLATE_VIS collate_byname;
 
 
 template <>
 template <>
 class _LIBCPP_TYPE_VIS collate_byname<char>
 class _LIBCPP_TYPE_VIS collate_byname<char>
@@ -425,7 +425,7 @@ public:
     _LIBCPP_ALWAYS_INLINE ctype_base() {}
     _LIBCPP_ALWAYS_INLINE ctype_base() {}
 };
 };
 
 
-template <class _CharT> class _LIBCPP_TYPE_VIS_ONLY ctype;
+template <class _CharT> class _LIBCPP_TEMPLATE_VIS ctype;
 
 
 template <>
 template <>
 class _LIBCPP_TYPE_VIS ctype<wchar_t>
 class _LIBCPP_TYPE_VIS ctype<wchar_t>
@@ -652,7 +652,7 @@ protected:
 
 
 // template <class CharT> class ctype_byname;
 // template <class CharT> class ctype_byname;
 
 
-template <class _CharT> class _LIBCPP_TYPE_VIS_ONLY ctype_byname;
+template <class _CharT> class _LIBCPP_TEMPLATE_VIS ctype_byname;
 
 
 template <>
 template <>
 class _LIBCPP_TYPE_VIS ctype_byname<char>
 class _LIBCPP_TYPE_VIS ctype_byname<char>
@@ -813,7 +813,7 @@ public:
 
 
 // template <class internT, class externT, class stateT> class codecvt;
 // template <class internT, class externT, class stateT> class codecvt;
 
 
-template <class _InternT, class _ExternT, class _StateT> class _LIBCPP_TYPE_VIS_ONLY codecvt;
+template <class _InternT, class _ExternT, class _StateT> class _LIBCPP_TEMPLATE_VIS codecvt;
 
 
 // template <> class codecvt<char, char, mbstate_t>
 // template <> class codecvt<char, char, mbstate_t>
 
 
@@ -1159,7 +1159,7 @@ protected:
 // template <class _InternT, class _ExternT, class _StateT> class codecvt_byname
 // template <class _InternT, class _ExternT, class _StateT> class codecvt_byname
 
 
 template <class _InternT, class _ExternT, class _StateT>
 template <class _InternT, class _ExternT, class _StateT>
-class _LIBCPP_TYPE_VIS_ONLY codecvt_byname
+class _LIBCPP_TEMPLATE_VIS codecvt_byname
     : public codecvt<_InternT, _ExternT, _StateT>
     : public codecvt<_InternT, _ExternT, _StateT>
 {
 {
 public:
 public:
@@ -1367,7 +1367,7 @@ struct __widen_from_utf8<32>
 
 
 // template <class charT> class numpunct
 // template <class charT> class numpunct
 
 
-template <class _CharT> class _LIBCPP_TYPE_VIS_ONLY numpunct;
+template <class _CharT> class _LIBCPP_TEMPLATE_VIS numpunct;
 
 
 template <>
 template <>
 class _LIBCPP_TYPE_VIS numpunct<char>
 class _LIBCPP_TYPE_VIS numpunct<char>
@@ -1433,7 +1433,7 @@ protected:
 
 
 // template <class charT> class numpunct_byname
 // template <class charT> class numpunct_byname
 
 
-template <class _CharT> class _LIBCPP_TYPE_VIS_ONLY numpunct_byname;
+template <class _CharT> class _LIBCPP_TEMPLATE_VIS numpunct_byname;
 
 
 template <>
 template <>
 class _LIBCPP_TYPE_VIS numpunct_byname<char>
 class _LIBCPP_TYPE_VIS numpunct_byname<char>

+ 3 - 3
include/__mutex_base

@@ -85,11 +85,11 @@ constexpr adopt_lock_t  adopt_lock  = adopt_lock_t();
 // the mangling consistent between dialects.
 // the mangling consistent between dialects.
 #if defined(_LIBCPP_ABI_VARIADIC_LOCK_GUARD)
 #if defined(_LIBCPP_ABI_VARIADIC_LOCK_GUARD)
 template <class ..._Mutexes>
 template <class ..._Mutexes>
-class _LIBCPP_TYPE_VIS_ONLY lock_guard;
+class _LIBCPP_TEMPLATE_VIS lock_guard;
 #endif
 #endif
 
 
 template <class _Mutex>
 template <class _Mutex>
-class _LIBCPP_TYPE_VIS_ONLY _LIBCPP_THREAD_SAFETY_ANNOTATION(scoped_lockable)
+class _LIBCPP_TEMPLATE_VIS _LIBCPP_THREAD_SAFETY_ANNOTATION(scoped_lockable)
 #if !defined(_LIBCPP_ABI_VARIADIC_LOCK_GUARD)
 #if !defined(_LIBCPP_ABI_VARIADIC_LOCK_GUARD)
 lock_guard
 lock_guard
 #else
 #else
@@ -118,7 +118,7 @@ private:
 };
 };
 
 
 template <class _Mutex>
 template <class _Mutex>
-class _LIBCPP_TYPE_VIS_ONLY unique_lock
+class _LIBCPP_TEMPLATE_VIS unique_lock
 {
 {
 public:
 public:
     typedef _Mutex mutex_type;
     typedef _Mutex mutex_type;

+ 1 - 1
include/__nullptr

@@ -21,7 +21,7 @@
 
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
-struct _LIBCPP_TYPE_VIS_ONLY nullptr_t
+struct _LIBCPP_TEMPLATE_VIS nullptr_t
 {
 {
     void* __lx;
     void* __lx;
 
 

+ 5 - 5
include/__string

@@ -69,7 +69,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 // char_traits
 // char_traits
 
 
 template <class _CharT>
 template <class _CharT>
-struct _LIBCPP_TYPE_VIS_ONLY char_traits
+struct _LIBCPP_TEMPLATE_VIS char_traits
 {
 {
     typedef _CharT    char_type;
     typedef _CharT    char_type;
     typedef int       int_type;
     typedef int       int_type;
@@ -192,7 +192,7 @@ char_traits<_CharT>::assign(char_type* __s, size_t __n, char_type __a)
 // char_traits<char>
 // char_traits<char>
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY char_traits<char>
+struct _LIBCPP_TEMPLATE_VIS char_traits<char>
 {
 {
     typedef char      char_type;
     typedef char      char_type;
     typedef int       int_type;
     typedef int       int_type;
@@ -237,7 +237,7 @@ struct _LIBCPP_TYPE_VIS_ONLY char_traits<char>
 // char_traits<wchar_t>
 // char_traits<wchar_t>
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY char_traits<wchar_t>
+struct _LIBCPP_TEMPLATE_VIS char_traits<wchar_t>
 {
 {
     typedef wchar_t   char_type;
     typedef wchar_t   char_type;
     typedef wint_t    int_type;
     typedef wint_t    int_type;
@@ -283,7 +283,7 @@ struct _LIBCPP_TYPE_VIS_ONLY char_traits<wchar_t>
 #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
 #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY char_traits<char16_t>
+struct _LIBCPP_TEMPLATE_VIS char_traits<char16_t>
 {
 {
     typedef char16_t       char_type;
     typedef char16_t       char_type;
     typedef uint_least16_t int_type;
     typedef uint_least16_t int_type;
@@ -402,7 +402,7 @@ char_traits<char16_t>::assign(char_type* __s, size_t __n, char_type __a) _NOEXCE
 }
 }
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY char_traits<char32_t>
+struct _LIBCPP_TEMPLATE_VIS char_traits<char32_t>
 {
 {
     typedef char32_t       char_type;
     typedef char32_t       char_type;
     typedef uint_least32_t int_type;
     typedef uint_least32_t int_type;

+ 19 - 19
include/__tree

@@ -25,9 +25,9 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 
 
 template <class _Tp, class _Compare, class _Allocator> class __tree;
 template <class _Tp, class _Compare, class _Allocator> class __tree;
 template <class _Tp, class _NodePtr, class _DiffType>
 template <class _Tp, class _NodePtr, class _DiffType>
-    class _LIBCPP_TYPE_VIS_ONLY __tree_iterator;
+    class _LIBCPP_TEMPLATE_VIS __tree_iterator;
 template <class _Tp, class _ConstNodePtr, class _DiffType>
 template <class _Tp, class _ConstNodePtr, class _DiffType>
-    class _LIBCPP_TYPE_VIS_ONLY __tree_const_iterator;
+    class _LIBCPP_TEMPLATE_VIS __tree_const_iterator;
 
 
 template <class _Pointer> class __tree_end_node;
 template <class _Pointer> class __tree_end_node;
 template <class _VoidPtr> class __tree_node_base;
 template <class _VoidPtr> class __tree_node_base;
@@ -42,8 +42,8 @@ struct __value_type;
 #endif
 #endif
 
 
 template <class _Allocator> class __map_node_destructor;
 template <class _Allocator> class __map_node_destructor;
-template <class _TreeIterator> class _LIBCPP_TYPE_VIS_ONLY __map_iterator;
-template <class _TreeIterator> class _LIBCPP_TYPE_VIS_ONLY __map_const_iterator;
+template <class _TreeIterator> class _LIBCPP_TEMPLATE_VIS __map_iterator;
+template <class _TreeIterator> class _LIBCPP_TEMPLATE_VIS __map_const_iterator;
 
 
 /*
 /*
 
 
@@ -797,7 +797,7 @@ public:
 
 
 
 
 template <class _Tp, class _NodePtr, class _DiffType>
 template <class _Tp, class _NodePtr, class _DiffType>
-class _LIBCPP_TYPE_VIS_ONLY __tree_iterator
+class _LIBCPP_TEMPLATE_VIS __tree_iterator
 {
 {
     typedef __tree_node_types<_NodePtr>                     _NodeTypes;
     typedef __tree_node_types<_NodePtr>                     _NodeTypes;
     typedef _NodePtr                                        __node_pointer;
     typedef _NodePtr                                        __node_pointer;
@@ -861,16 +861,16 @@ private:
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
     __node_pointer __get_np() const { return static_cast<__node_pointer>(__ptr_); }
     __node_pointer __get_np() const { return static_cast<__node_pointer>(__ptr_); }
     template <class, class, class> friend class __tree;
     template <class, class, class> friend class __tree;
-    template <class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY __tree_const_iterator;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __map_iterator;
-    template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY map;
-    template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY multimap;
-    template <class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY set;
-    template <class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY multiset;
+    template <class, class, class> friend class _LIBCPP_TEMPLATE_VIS __tree_const_iterator;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __map_iterator;
+    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS map;
+    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS multimap;
+    template <class, class, class> friend class _LIBCPP_TEMPLATE_VIS set;
+    template <class, class, class> friend class _LIBCPP_TEMPLATE_VIS multiset;
 };
 };
 
 
 template <class _Tp, class _NodePtr, class _DiffType>
 template <class _Tp, class _NodePtr, class _DiffType>
-class _LIBCPP_TYPE_VIS_ONLY __tree_const_iterator
+class _LIBCPP_TEMPLATE_VIS __tree_const_iterator
 {
 {
     typedef __tree_node_types<_NodePtr>                     _NodeTypes;
     typedef __tree_node_types<_NodePtr>                     _NodeTypes;
     typedef typename _NodeTypes::__node_pointer             __node_pointer;
     typedef typename _NodeTypes::__node_pointer             __node_pointer;
@@ -947,11 +947,11 @@ private:
     __node_pointer __get_np() const { return static_cast<__node_pointer>(__ptr_); }
     __node_pointer __get_np() const { return static_cast<__node_pointer>(__ptr_); }
 
 
     template <class, class, class> friend class __tree;
     template <class, class, class> friend class __tree;
-    template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY map;
-    template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY multimap;
-    template <class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY set;
-    template <class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY multiset;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __map_const_iterator;
+    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS map;
+    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS multimap;
+    template <class, class, class> friend class _LIBCPP_TEMPLATE_VIS set;
+    template <class, class, class> friend class _LIBCPP_TEMPLATE_VIS multiset;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __map_const_iterator;
 
 
 };
 };
 
 
@@ -1453,8 +1453,8 @@ private:
     __node_pointer __detach();
     __node_pointer __detach();
     static __node_pointer __detach(__node_pointer);
     static __node_pointer __detach(__node_pointer);
 
 
-    template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY map;
-    template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY multimap;
+    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS map;
+    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS multimap;
 };
 };
 
 
 template <class _Tp, class _Compare, class _Allocator>
 template <class _Tp, class _Compare, class _Allocator>

+ 17 - 17
include/__tuple

@@ -22,56 +22,56 @@
 
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
-template <class _Tp> class _LIBCPP_TYPE_VIS_ONLY tuple_size;
+template <class _Tp> class _LIBCPP_TEMPLATE_VIS tuple_size;
 
 
 #if !defined(_LIBCPP_CXX03_LANG)
 #if !defined(_LIBCPP_CXX03_LANG)
 template <class _Tp, class...>
 template <class _Tp, class...>
 using __enable_if_tuple_size_imp = _Tp;
 using __enable_if_tuple_size_imp = _Tp;
 
 
 template <class _Tp>
 template <class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY tuple_size<__enable_if_tuple_size_imp<
+class _LIBCPP_TEMPLATE_VIS tuple_size<__enable_if_tuple_size_imp<
     const _Tp,
     const _Tp,
     typename enable_if<!is_volatile<_Tp>::value>::type,
     typename enable_if<!is_volatile<_Tp>::value>::type,
     integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>
     integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>
     : public integral_constant<size_t, tuple_size<_Tp>::value> {};
     : public integral_constant<size_t, tuple_size<_Tp>::value> {};
 
 
 template <class _Tp>
 template <class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY tuple_size<__enable_if_tuple_size_imp<
+class _LIBCPP_TEMPLATE_VIS tuple_size<__enable_if_tuple_size_imp<
     volatile _Tp,
     volatile _Tp,
     typename enable_if<!is_const<_Tp>::value>::type,
     typename enable_if<!is_const<_Tp>::value>::type,
     integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>
     integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>
     : public integral_constant<size_t, tuple_size<_Tp>::value> {};
     : public integral_constant<size_t, tuple_size<_Tp>::value> {};
 
 
 template <class _Tp>
 template <class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY tuple_size<__enable_if_tuple_size_imp<
+class _LIBCPP_TEMPLATE_VIS tuple_size<__enable_if_tuple_size_imp<
     const volatile _Tp,
     const volatile _Tp,
     integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>
     integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>
     : public integral_constant<size_t, tuple_size<_Tp>::value> {};
     : public integral_constant<size_t, tuple_size<_Tp>::value> {};
 
 
 #else
 #else
-template <class _Tp> class _LIBCPP_TYPE_VIS_ONLY tuple_size<const _Tp> : public tuple_size<_Tp> {};
-template <class _Tp> class _LIBCPP_TYPE_VIS_ONLY tuple_size<volatile _Tp> : public tuple_size<_Tp> {};
-template <class _Tp> class _LIBCPP_TYPE_VIS_ONLY tuple_size<const volatile _Tp> : public tuple_size<_Tp> {};
+template <class _Tp> class _LIBCPP_TEMPLATE_VIS tuple_size<const _Tp> : public tuple_size<_Tp> {};
+template <class _Tp> class _LIBCPP_TEMPLATE_VIS tuple_size<volatile _Tp> : public tuple_size<_Tp> {};
+template <class _Tp> class _LIBCPP_TEMPLATE_VIS tuple_size<const volatile _Tp> : public tuple_size<_Tp> {};
 #endif
 #endif
 
 
-template <size_t _Ip, class _Tp> class _LIBCPP_TYPE_VIS_ONLY tuple_element;
+template <size_t _Ip, class _Tp> class _LIBCPP_TEMPLATE_VIS tuple_element;
 
 
 template <size_t _Ip, class _Tp>
 template <size_t _Ip, class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, const _Tp>
+class _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, const _Tp>
 {
 {
 public:
 public:
     typedef typename add_const<typename tuple_element<_Ip, _Tp>::type>::type type;
     typedef typename add_const<typename tuple_element<_Ip, _Tp>::type>::type type;
 };
 };
 
 
 template <size_t _Ip, class _Tp>
 template <size_t _Ip, class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, volatile _Tp>
+class _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, volatile _Tp>
 {
 {
 public:
 public:
     typedef typename add_volatile<typename tuple_element<_Ip, _Tp>::type>::type type;
     typedef typename add_volatile<typename tuple_element<_Ip, _Tp>::type>::type type;
 };
 };
 
 
 template <size_t _Ip, class _Tp>
 template <size_t _Ip, class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, const volatile _Tp>
+class _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, const volatile _Tp>
 {
 {
 public:
 public:
     typedef typename add_cv<typename tuple_element<_Ip, _Tp>::type>::type type;
     typedef typename add_cv<typename tuple_element<_Ip, _Tp>::type>::type type;
@@ -160,12 +160,12 @@ struct __make_tuple_indices
 };
 };
 
 
 
 
-template <class ..._Tp> class _LIBCPP_TYPE_VIS_ONLY tuple;
+template <class ..._Tp> class _LIBCPP_TEMPLATE_VIS tuple;
 
 
 template <class... _Tp> struct __tuple_like<tuple<_Tp...> > : true_type {};
 template <class... _Tp> struct __tuple_like<tuple<_Tp...> > : true_type {};
 
 
 template <class ..._Tp>
 template <class ..._Tp>
-class _LIBCPP_TYPE_VIS_ONLY tuple_size<tuple<_Tp...> >
+class _LIBCPP_TEMPLATE_VIS tuple_size<tuple<_Tp...> >
     : public integral_constant<size_t, sizeof...(_Tp)>
     : public integral_constant<size_t, sizeof...(_Tp)>
 {
 {
 };
 };
@@ -219,7 +219,7 @@ get(const pair<_T1, _T2>&&) _NOEXCEPT;
 
 
 // array specializations
 // array specializations
 
 
-template <class _Tp, size_t _Size> struct _LIBCPP_TYPE_VIS_ONLY array;
+template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
 
 
 template <class _Tp, size_t _Size> struct __tuple_like<array<_Tp, _Size> > : true_type {};
 template <class _Tp, size_t _Size> struct __tuple_like<array<_Tp, _Size> > : true_type {};
 
 
@@ -282,7 +282,7 @@ using __type_pack_element = typename decltype(
 #endif
 #endif
 
 
 template <size_t _Ip, class ..._Types>
 template <size_t _Ip, class ..._Types>
-class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, __tuple_types<_Types...>>
+class _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, __tuple_types<_Types...>>
 {
 {
 public:
 public:
     static_assert(_Ip < sizeof...(_Types), "tuple_element index out of range");
     static_assert(_Ip < sizeof...(_Types), "tuple_element index out of range");
@@ -291,7 +291,7 @@ public:
 
 
 
 
 template <class ..._Tp>
 template <class ..._Tp>
-class _LIBCPP_TYPE_VIS_ONLY tuple_size<__tuple_types<_Tp...> >
+class _LIBCPP_TEMPLATE_VIS tuple_size<__tuple_types<_Tp...> >
     : public integral_constant<size_t, sizeof...(_Tp)>
     : public integral_constant<size_t, sizeof...(_Tp)>
 {
 {
 };
 };
@@ -457,7 +457,7 @@ struct __tuple_assignable<_Tp, _Up, true, true>
 
 
 
 
 template <size_t _Ip, class ..._Tp>
 template <size_t _Ip, class ..._Tp>
-class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, tuple<_Tp...> >
+class _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, tuple<_Tp...> >
 {
 {
 public:
 public:
     typedef typename tuple_element<_Ip, __tuple_types<_Tp...> >::type type;
     typedef typename tuple_element<_Ip, __tuple_types<_Tp...> >::type type;

+ 5 - 5
include/any

@@ -113,7 +113,7 @@ void __throw_bad_any_cast()
 }
 }
 
 
 // Forward declarations
 // Forward declarations
-class _LIBCPP_TYPE_VIS_ONLY any;
+class _LIBCPP_TEMPLATE_VIS any;
 
 
 template <class _ValueType>
 template <class _ValueType>
 _LIBCPP_INLINE_VISIBILITY
 _LIBCPP_INLINE_VISIBILITY
@@ -148,7 +148,7 @@ namespace __any_imp
   template <class _Tp> struct _LargeHandler;
   template <class _Tp> struct _LargeHandler;
 
 
   template <class _Tp>
   template <class _Tp>
-  struct  _LIBCPP_TYPE_VIS_ONLY __unique_typeinfo { static constexpr int __id = 0; };
+  struct  _LIBCPP_TEMPLATE_VIS __unique_typeinfo { static constexpr int __id = 0; };
   template <class _Tp> constexpr int __unique_typeinfo<_Tp>::__id;
   template <class _Tp> constexpr int __unique_typeinfo<_Tp>::__id;
 
 
   template <class _Tp>
   template <class _Tp>
@@ -176,7 +176,7 @@ namespace __any_imp
 
 
 } // namespace __any_imp
 } // namespace __any_imp
 
 
-class _LIBCPP_TYPE_VIS_ONLY any
+class _LIBCPP_TEMPLATE_VIS any
 {
 {
 public:
 public:
   // construct/destruct
   // construct/destruct
@@ -338,7 +338,7 @@ private:
 namespace __any_imp
 namespace __any_imp
 {
 {
   template <class _Tp>
   template <class _Tp>
-  struct _LIBCPP_TYPE_VIS_ONLY _SmallHandler
+  struct _LIBCPP_TEMPLATE_VIS _SmallHandler
   {
   {
      _LIBCPP_INLINE_VISIBILITY
      _LIBCPP_INLINE_VISIBILITY
      static void* __handle(_Action __act, any const * __this, any * __other,
      static void* __handle(_Action __act, any const * __this, any * __other,
@@ -412,7 +412,7 @@ namespace __any_imp
   };
   };
 
 
   template <class _Tp>
   template <class _Tp>
-  struct _LIBCPP_TYPE_VIS_ONLY _LargeHandler
+  struct _LIBCPP_TEMPLATE_VIS _LargeHandler
   {
   {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
     static void* __handle(_Action __act, any const * __this,
     static void* __handle(_Action __act, any const * __this,

+ 3 - 3
include/array

@@ -116,7 +116,7 @@ template <size_t I, class T, size_t N> const T&& get(const array<T, N>&&) noexce
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
 template <class _Tp, size_t _Size>
 template <class _Tp, size_t _Size>
-struct _LIBCPP_TYPE_VIS_ONLY array
+struct _LIBCPP_TEMPLATE_VIS array
 {
 {
     // types:
     // types:
     typedef array __self;
     typedef array __self;
@@ -284,11 +284,11 @@ swap(array<_Tp, _Size>& __x, array<_Tp, _Size>& __y)
 }
 }
 
 
 template <class _Tp, size_t _Size>
 template <class _Tp, size_t _Size>
-class _LIBCPP_TYPE_VIS_ONLY tuple_size<array<_Tp, _Size> >
+class _LIBCPP_TEMPLATE_VIS tuple_size<array<_Tp, _Size> >
     : public integral_constant<size_t, _Size> {};
     : public integral_constant<size_t, _Size> {};
 
 
 template <size_t _Ip, class _Tp, size_t _Size>
 template <size_t _Ip, class _Tp, size_t _Size>
-class _LIBCPP_TYPE_VIS_ONLY tuple_element<_Ip, array<_Tp, _Size> >
+class _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, array<_Tp, _Size> >
 {
 {
 public:
 public:
     typedef _Tp type;
     typedef _Tp type;

+ 3 - 3
include/bitset

@@ -646,11 +646,11 @@ __bitset<0, 0>::__bitset(unsigned long long) _NOEXCEPT
 {
 {
 }
 }
 
 
-template <size_t _Size> class _LIBCPP_TYPE_VIS_ONLY bitset;
+template <size_t _Size> class _LIBCPP_TEMPLATE_VIS bitset;
 template <size_t _Size> struct hash<bitset<_Size> >;
 template <size_t _Size> struct hash<bitset<_Size> >;
 
 
 template <size_t _Size>
 template <size_t _Size>
-class _LIBCPP_TYPE_VIS_ONLY bitset
+class _LIBCPP_TEMPLATE_VIS bitset
     : private __bitset<_Size == 0 ? 0 : (_Size - 1) / (sizeof(size_t) * CHAR_BIT) + 1, _Size>
     : private __bitset<_Size == 0 ? 0 : (_Size - 1) / (sizeof(size_t) * CHAR_BIT) + 1, _Size>
 {
 {
 public:
 public:
@@ -1072,7 +1072,7 @@ operator^(const bitset<_Size>& __x, const bitset<_Size>& __y) _NOEXCEPT
 }
 }
 
 
 template <size_t _Size>
 template <size_t _Size>
-struct _LIBCPP_TYPE_VIS_ONLY hash<bitset<_Size> >
+struct _LIBCPP_TEMPLATE_VIS hash<bitset<_Size> >
     : public unary_function<bitset<_Size>, size_t>
     : public unary_function<bitset<_Size>, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY

+ 7 - 7
include/chrono

@@ -316,7 +316,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 namespace chrono
 namespace chrono
 {
 {
 
 
-template <class _Rep, class _Period = ratio<1> > class _LIBCPP_TYPE_VIS_ONLY duration;
+template <class _Rep, class _Period = ratio<1> > class _LIBCPP_TEMPLATE_VIS duration;
 
 
 template <class _Tp>
 template <class _Tp>
 struct __is_duration : false_type {};
 struct __is_duration : false_type {};
@@ -336,7 +336,7 @@ struct __is_duration<const volatile duration<_Rep, _Period> > : true_type  {};
 } // chrono
 } // chrono
 
 
 template <class _Rep1, class _Period1, class _Rep2, class _Period2>
 template <class _Rep1, class _Period1, class _Rep2, class _Period2>
-struct _LIBCPP_TYPE_VIS_ONLY common_type<chrono::duration<_Rep1, _Period1>,
+struct _LIBCPP_TEMPLATE_VIS common_type<chrono::duration<_Rep1, _Period1>,
                                          chrono::duration<_Rep2, _Period2> >
                                          chrono::duration<_Rep2, _Period2> >
 {
 {
     typedef chrono::duration<typename common_type<_Rep1, _Rep2>::type,
     typedef chrono::duration<typename common_type<_Rep1, _Rep2>::type,
@@ -414,7 +414,7 @@ duration_cast(const duration<_Rep, _Period>& __fd)
 }
 }
 
 
 template <class _Rep>
 template <class _Rep>
-struct _LIBCPP_TYPE_VIS_ONLY treat_as_floating_point : is_floating_point<_Rep> {};
+struct _LIBCPP_TEMPLATE_VIS treat_as_floating_point : is_floating_point<_Rep> {};
 
 
 #if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)
 #if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)
 template <class _Rep> _LIBCPP_CONSTEXPR bool treat_as_floating_point_v
 template <class _Rep> _LIBCPP_CONSTEXPR bool treat_as_floating_point_v
@@ -422,7 +422,7 @@ template <class _Rep> _LIBCPP_CONSTEXPR bool treat_as_floating_point_v
 #endif
 #endif
 
 
 template <class _Rep>
 template <class _Rep>
-struct _LIBCPP_TYPE_VIS_ONLY duration_values
+struct _LIBCPP_TEMPLATE_VIS duration_values
 {
 {
 public:
 public:
     _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR _Rep zero() {return _Rep(0);}
     _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR _Rep zero() {return _Rep(0);}
@@ -485,7 +485,7 @@ round(const duration<_Rep, _Period>& __d)
 // duration
 // duration
 
 
 template <class _Rep, class _Period>
 template <class _Rep, class _Period>
-class _LIBCPP_TYPE_VIS_ONLY duration
+class _LIBCPP_TEMPLATE_VIS duration
 {
 {
     static_assert(!__is_duration<_Rep>::value, "A duration representation can not be a duration");
     static_assert(!__is_duration<_Rep>::value, "A duration representation can not be a duration");
     static_assert(__is_ratio<_Period>::value, "Second template parameter of duration must be a std::ratio");
     static_assert(__is_ratio<_Period>::value, "Second template parameter of duration must be a std::ratio");
@@ -828,7 +828,7 @@ operator%(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2
 //////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////
 
 
 template <class _Clock, class _Duration = typename _Clock::duration>
 template <class _Clock, class _Duration = typename _Clock::duration>
-class _LIBCPP_TYPE_VIS_ONLY time_point
+class _LIBCPP_TEMPLATE_VIS time_point
 {
 {
     static_assert(__is_duration<_Duration>::value,
     static_assert(__is_duration<_Duration>::value,
                   "Second template parameter of time_point must be a std::chrono::duration");
                   "Second template parameter of time_point must be a std::chrono::duration");
@@ -872,7 +872,7 @@ public:
 } // chrono
 } // chrono
 
 
 template <class _Clock, class _Duration1, class _Duration2>
 template <class _Clock, class _Duration1, class _Duration2>
-struct _LIBCPP_TYPE_VIS_ONLY common_type<chrono::time_point<_Clock, _Duration1>,
+struct _LIBCPP_TEMPLATE_VIS common_type<chrono::time_point<_Clock, _Duration1>,
                                          chrono::time_point<_Clock, _Duration2> >
                                          chrono::time_point<_Clock, _Duration2> >
 {
 {
     typedef chrono::time_point<_Clock, typename common_type<_Duration1, _Duration2>::type> type;
     typedef chrono::time_point<_Clock, typename common_type<_Duration1, _Duration2>::type> type;

+ 3 - 3
include/codecvt

@@ -182,7 +182,7 @@ protected:
 
 
 template <class _Elem, unsigned long _Maxcode = 0x10ffff,
 template <class _Elem, unsigned long _Maxcode = 0x10ffff,
           codecvt_mode _Mode = (codecvt_mode)0>
           codecvt_mode _Mode = (codecvt_mode)0>
-class _LIBCPP_TYPE_VIS_ONLY codecvt_utf8
+class _LIBCPP_TEMPLATE_VIS codecvt_utf8
     : public __codecvt_utf8<_Elem>
     : public __codecvt_utf8<_Elem>
 {
 {
 public:
 public:
@@ -410,7 +410,7 @@ protected:
 
 
 template <class _Elem, unsigned long _Maxcode = 0x10ffff,
 template <class _Elem, unsigned long _Maxcode = 0x10ffff,
           codecvt_mode _Mode = (codecvt_mode)0>
           codecvt_mode _Mode = (codecvt_mode)0>
-class _LIBCPP_TYPE_VIS_ONLY codecvt_utf16
+class _LIBCPP_TEMPLATE_VIS codecvt_utf16
     : public __codecvt_utf16<_Elem, _Mode & little_endian>
     : public __codecvt_utf16<_Elem, _Mode & little_endian>
 {
 {
 public:
 public:
@@ -533,7 +533,7 @@ protected:
 
 
 template <class _Elem, unsigned long _Maxcode = 0x10ffff,
 template <class _Elem, unsigned long _Maxcode = 0x10ffff,
           codecvt_mode _Mode = (codecvt_mode)0>
           codecvt_mode _Mode = (codecvt_mode)0>
-class _LIBCPP_TYPE_VIS_ONLY codecvt_utf8_utf16
+class _LIBCPP_TEMPLATE_VIS codecvt_utf8_utf16
     : public __codecvt_utf8_utf16<_Elem>
     : public __codecvt_utf8_utf16<_Elem>
 {
 {
 public:
 public:

+ 7 - 7
include/complex

@@ -252,13 +252,13 @@ template<class T, class charT, class traits>
 
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
-template<class _Tp> class _LIBCPP_TYPE_VIS_ONLY complex;
+template<class _Tp> class _LIBCPP_TEMPLATE_VIS complex;
 
 
 template<class _Tp> complex<_Tp> operator*(const complex<_Tp>& __z, const complex<_Tp>& __w);
 template<class _Tp> complex<_Tp> operator*(const complex<_Tp>& __z, const complex<_Tp>& __w);
 template<class _Tp> complex<_Tp> operator/(const complex<_Tp>& __x, const complex<_Tp>& __y);
 template<class _Tp> complex<_Tp> operator/(const complex<_Tp>& __x, const complex<_Tp>& __y);
 
 
 template<class _Tp>
 template<class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY complex
+class _LIBCPP_TEMPLATE_VIS complex
 {
 {
 public:
 public:
     typedef _Tp value_type;
     typedef _Tp value_type;
@@ -316,11 +316,11 @@ public:
         }
         }
 };
 };
 
 
-template<> class _LIBCPP_TYPE_VIS_ONLY complex<double>;
-template<> class _LIBCPP_TYPE_VIS_ONLY complex<long double>;
+template<> class _LIBCPP_TEMPLATE_VIS complex<double>;
+template<> class _LIBCPP_TEMPLATE_VIS complex<long double>;
 
 
 template<>
 template<>
-class _LIBCPP_TYPE_VIS_ONLY complex<float>
+class _LIBCPP_TEMPLATE_VIS complex<float>
 {
 {
     float __re_;
     float __re_;
     float __im_;
     float __im_;
@@ -378,7 +378,7 @@ public:
 };
 };
 
 
 template<>
 template<>
-class _LIBCPP_TYPE_VIS_ONLY complex<double>
+class _LIBCPP_TEMPLATE_VIS complex<double>
 {
 {
     double __re_;
     double __re_;
     double __im_;
     double __im_;
@@ -436,7 +436,7 @@ public:
 };
 };
 
 
 template<>
 template<>
-class _LIBCPP_TYPE_VIS_ONLY complex<long double>
+class _LIBCPP_TEMPLATE_VIS complex<long double>
 {
 {
     long double __re_;
     long double __re_;
     long double __im_;
     long double __im_;

+ 6 - 6
include/deque

@@ -167,11 +167,11 @@ template <class T, class Allocator>
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
 template <class _Tp, class _Allocator> class __deque_base;
 template <class _Tp, class _Allocator> class __deque_base;
-template <class _Tp, class _Allocator = allocator<_Tp> > class _LIBCPP_TYPE_VIS_ONLY deque;
+template <class _Tp, class _Allocator = allocator<_Tp> > class _LIBCPP_TEMPLATE_VIS deque;
 
 
 template <class _ValueType, class _Pointer, class _Reference, class _MapPointer,
 template <class _ValueType, class _Pointer, class _Reference, class _MapPointer,
           class _DiffType, _DiffType _BlockSize>
           class _DiffType, _DiffType _BlockSize>
-class _LIBCPP_TYPE_VIS_ONLY __deque_iterator;
+class _LIBCPP_TEMPLATE_VIS __deque_iterator;
 
 
 template <class _RAIter,
 template <class _RAIter,
           class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
           class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
@@ -276,7 +276,7 @@ template <class _ValueType, class _Pointer, class _Reference, class _MapPointer,
                                __deque_block_size<_ValueType, _DiffType>::value
                                __deque_block_size<_ValueType, _DiffType>::value
 #endif
 #endif
           >
           >
-class _LIBCPP_TYPE_VIS_ONLY __deque_iterator
+class _LIBCPP_TEMPLATE_VIS __deque_iterator
 {
 {
     typedef _MapPointer __map_iterator;
     typedef _MapPointer __map_iterator;
 public:
 public:
@@ -428,9 +428,9 @@ private:
         : __m_iter_(__m), __ptr_(__p) {}
         : __m_iter_(__m), __ptr_(__p) {}
 
 
     template <class _Tp, class _Ap> friend class __deque_base;
     template <class _Tp, class _Ap> friend class __deque_base;
-    template <class _Tp, class _Ap> friend class _LIBCPP_TYPE_VIS_ONLY deque;
+    template <class _Tp, class _Ap> friend class _LIBCPP_TEMPLATE_VIS deque;
     template <class _Vp, class _Pp, class _Rp, class _MP, class _Dp, _Dp>
     template <class _Vp, class _Pp, class _Rp, class _MP, class _Dp, _Dp>
-        friend class _LIBCPP_TYPE_VIS_ONLY __deque_iterator;
+        friend class _LIBCPP_TEMPLATE_VIS __deque_iterator;
 
 
     template <class _RAIter,
     template <class _RAIter,
               class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
               class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>
@@ -1183,7 +1183,7 @@ __deque_base<_Tp, _Allocator>::clear() _NOEXCEPT
 }
 }
 
 
 template <class _Tp, class _Allocator /*= allocator<_Tp>*/>
 template <class _Tp, class _Allocator /*= allocator<_Tp>*/>
-class _LIBCPP_TYPE_VIS_ONLY deque
+class _LIBCPP_TEMPLATE_VIS deque
     : private __deque_base<_Tp, _Allocator>
     : private __deque_base<_Tp, _Allocator>
 {
 {
 public:
 public:

+ 2 - 2
include/experimental/any

@@ -292,7 +292,7 @@ namespace __any_imp
 {
 {
 
 
   template <class _Tp>
   template <class _Tp>
-  struct _LIBCPP_TYPE_VIS_ONLY _SmallHandler
+  struct _LIBCPP_TEMPLATE_VIS _SmallHandler
   {
   {
      _LIBCPP_INLINE_VISIBILITY
      _LIBCPP_INLINE_VISIBILITY
      static void* __handle(_Action __act, any const * __this, any * __other,
      static void* __handle(_Action __act, any const * __this, any * __other,
@@ -373,7 +373,7 @@ namespace __any_imp
   };
   };
 
 
   template <class _Tp>
   template <class _Tp>
-  struct _LIBCPP_TYPE_VIS_ONLY _LargeHandler
+  struct _LIBCPP_TEMPLATE_VIS _LargeHandler
   {
   {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
     static void* __handle(_Action __act, any const * __this, any * __other,
     static void* __handle(_Action __act, any const * __this, any * __other,

+ 2 - 2
include/experimental/dynarray

@@ -113,7 +113,7 @@ public:
 namespace std { namespace experimental { inline namespace __array_extensions_v1 {
 namespace std { namespace experimental { inline namespace __array_extensions_v1 {
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY dynarray
+struct _LIBCPP_TEMPLATE_VIS dynarray
 {
 {
 public:
 public:
     // types:
     // types:
@@ -295,7 +295,7 @@ dynarray<_Tp>::at(size_type __n) const
 
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 template <class _Tp, class _Alloc>
 template <class _Tp, class _Alloc>
-struct _LIBCPP_TYPE_VIS_ONLY uses_allocator<std::experimental::dynarray<_Tp>, _Alloc> : true_type {};
+struct _LIBCPP_TEMPLATE_VIS uses_allocator<std::experimental::dynarray<_Tp>, _Alloc> : true_type {};
 _LIBCPP_END_NAMESPACE_STD
 _LIBCPP_END_NAMESPACE_STD
 
 
 #endif  // if _LIBCPP_STD_VER > 11 
 #endif  // if _LIBCPP_STD_VER > 11 

+ 3 - 3
include/experimental/memory_resource

@@ -93,7 +93,7 @@ size_t __aligned_allocation_size(size_t __s, size_t __a) _NOEXCEPT
 }
 }
 
 
 // 8.5, memory.resource
 // 8.5, memory.resource
-class _LIBCPP_TYPE_VIS_ONLY memory_resource
+class _LIBCPP_TEMPLATE_VIS memory_resource
 {
 {
     static const size_t __max_align = alignof(max_align_t);
     static const size_t __max_align = alignof(max_align_t);
 
 
@@ -151,7 +151,7 @@ memory_resource * set_default_resource(memory_resource * __new_res) _NOEXCEPT;
 
 
 // 8.6.1, memory.polymorphic.allocator.overview
 // 8.6.1, memory.polymorphic.allocator.overview
 template <class _ValueType>
 template <class _ValueType>
-class _LIBCPP_TYPE_VIS_ONLY polymorphic_allocator
+class _LIBCPP_TEMPLATE_VIS polymorphic_allocator
 {
 {
 public:
 public:
     typedef _ValueType value_type;
     typedef _ValueType value_type;
@@ -334,7 +334,7 @@ bool operator!=(polymorphic_allocator<_Tp> const & __lhs,
 
 
 // 8.7.1, memory.resource.adaptor.overview
 // 8.7.1, memory.resource.adaptor.overview
 template <class _CharAlloc>
 template <class _CharAlloc>
-class _LIBCPP_TYPE_VIS_ONLY __resource_adaptor_imp
+class _LIBCPP_TEMPLATE_VIS __resource_adaptor_imp
   : public memory_resource
   : public memory_resource
 {
 {
     using _CTraits = allocator_traits<_CharAlloc>;
     using _CTraits = allocator_traits<_CharAlloc>;

+ 1 - 1
include/experimental/optional

@@ -894,7 +894,7 @@ _LIBCPP_END_NAMESPACE_LFTS
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY hash<std::experimental::optional<_Tp> >
+struct _LIBCPP_TEMPLATE_VIS hash<std::experimental::optional<_Tp> >
 {
 {
     typedef std::experimental::optional<_Tp> argument_type;
     typedef std::experimental::optional<_Tp> argument_type;
     typedef size_t        result_type;
     typedef size_t        result_type;

+ 2 - 2
include/experimental/string_view

@@ -192,7 +192,7 @@ namespace std {
 _LIBCPP_BEGIN_NAMESPACE_LFTS
 _LIBCPP_BEGIN_NAMESPACE_LFTS
 
 
     template<class _CharT, class _Traits = _VSTD::char_traits<_CharT> >
     template<class _CharT, class _Traits = _VSTD::char_traits<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_string_view {
+    class _LIBCPP_TEMPLATE_VIS basic_string_view {
     public:
     public:
         // types
         // types
         typedef _Traits                                    traits_type;
         typedef _Traits                                    traits_type;
@@ -788,7 +788,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 // [string.view.hash]
 // [string.view.hash]
 // Shamelessly stolen from <string>
 // Shamelessly stolen from <string>
 template<class _CharT, class _Traits>
 template<class _CharT, class _Traits>
-struct _LIBCPP_TYPE_VIS_ONLY hash<std::experimental::basic_string_view<_CharT, _Traits> >
+struct _LIBCPP_TEMPLATE_VIS hash<std::experimental::basic_string_view<_CharT, _Traits> >
     : public unary_function<std::experimental::basic_string_view<_CharT, _Traits>, size_t>
     : public unary_function<std::experimental::basic_string_view<_CharT, _Traits>, size_t>
 {
 {
     size_t operator()(const std::experimental::basic_string_view<_CharT, _Traits>& __val) const _NOEXCEPT;
     size_t operator()(const std::experimental::basic_string_view<_CharT, _Traits>& __val) const _NOEXCEPT;

+ 4 - 4
include/experimental/type_traits

@@ -441,16 +441,16 @@ template <class _Tp, class _Up> _LIBCPP_CONSTEXPR bool is_convertible_v
 // 3.3.2, Other type transformations
 // 3.3.2, Other type transformations
 /*
 /*
 template <class>
 template <class>
-class _LIBCPP_TYPE_VIS_ONLY raw_invocation_type;
+class _LIBCPP_TEMPLATE_VIS raw_invocation_type;
 
 
 template <class _Fn, class ..._Args>
 template <class _Fn, class ..._Args>
-class _LIBCPP_TYPE_VIS_ONLY raw_invocation_type<_Fn(_Args...)>;
+class _LIBCPP_TEMPLATE_VIS raw_invocation_type<_Fn(_Args...)>;
 
 
 template <class>
 template <class>
-class _LIBCPP_TYPE_VIS_ONLY invokation_type;
+class _LIBCPP_TEMPLATE_VIS invokation_type;
 
 
 template <class _Fn, class ..._Args>
 template <class _Fn, class ..._Args>
-class _LIBCPP_TYPE_VIS_ONLY invokation_type<_Fn(_Args...)>;
+class _LIBCPP_TEMPLATE_VIS invokation_type<_Fn(_Args...)>;
 
 
 template <class _Tp>
 template <class _Tp>
 using invokation_type_t = typename invokation_type<_Tp>::type;
 using invokation_type_t = typename invokation_type<_Tp>::type;

+ 1 - 1
include/experimental/utility

@@ -40,7 +40,7 @@ inline namespace fundamentals_v1 {
 
 
 _LIBCPP_BEGIN_NAMESPACE_LFTS
 _LIBCPP_BEGIN_NAMESPACE_LFTS
 
 
-  struct _LIBCPP_TYPE_VIS_ONLY erased_type { };
+  struct _LIBCPP_TEMPLATE_VIS erased_type { };
 
 
 _LIBCPP_END_NAMESPACE_LFTS
 _LIBCPP_END_NAMESPACE_LFTS
 
 

+ 12 - 12
include/ext/__hash

@@ -19,9 +19,9 @@
 namespace __gnu_cxx {
 namespace __gnu_cxx {
 using namespace std;
 using namespace std;
 
 
-template <typename _Tp> struct _LIBCPP_TYPE_VIS_ONLY hash { };
+template <typename _Tp> struct _LIBCPP_TEMPLATE_VIS hash { };
 
 
-template <> struct _LIBCPP_TYPE_VIS_ONLY hash<const char*>
+template <> struct _LIBCPP_TEMPLATE_VIS hash<const char*>
     : public unary_function<const char*, size_t>
     : public unary_function<const char*, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -31,7 +31,7 @@ template <> struct _LIBCPP_TYPE_VIS_ONLY hash<const char*>
     }
     }
 };
 };
 
 
-template <> struct _LIBCPP_TYPE_VIS_ONLY hash<char *>
+template <> struct _LIBCPP_TEMPLATE_VIS hash<char *>
     : public unary_function<char*, size_t>
     : public unary_function<char*, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -41,7 +41,7 @@ template <> struct _LIBCPP_TYPE_VIS_ONLY hash<char *>
     }
     }
 };
 };
 
 
-template <> struct _LIBCPP_TYPE_VIS_ONLY hash<char>
+template <> struct _LIBCPP_TEMPLATE_VIS hash<char>
     : public unary_function<char, size_t>
     : public unary_function<char, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -51,7 +51,7 @@ template <> struct _LIBCPP_TYPE_VIS_ONLY hash<char>
     }
     }
 };
 };
 
 
-template <> struct _LIBCPP_TYPE_VIS_ONLY hash<signed char>
+template <> struct _LIBCPP_TEMPLATE_VIS hash<signed char>
     : public unary_function<signed char, size_t>
     : public unary_function<signed char, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -61,7 +61,7 @@ template <> struct _LIBCPP_TYPE_VIS_ONLY hash<signed char>
     }
     }
 };
 };
 
 
-template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned char>
+template <> struct _LIBCPP_TEMPLATE_VIS hash<unsigned char>
     : public unary_function<unsigned char, size_t>
     : public unary_function<unsigned char, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -71,7 +71,7 @@ template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned char>
     }
     }
 };
 };
 
 
-template <> struct _LIBCPP_TYPE_VIS_ONLY hash<short>
+template <> struct _LIBCPP_TEMPLATE_VIS hash<short>
     : public unary_function<short, size_t>
     : public unary_function<short, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -81,7 +81,7 @@ template <> struct _LIBCPP_TYPE_VIS_ONLY hash<short>
     }
     }
 };
 };
 
 
-template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned short>
+template <> struct _LIBCPP_TEMPLATE_VIS hash<unsigned short>
     : public unary_function<unsigned short, size_t>
     : public unary_function<unsigned short, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -91,7 +91,7 @@ template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned short>
     }
     }
 };
 };
 
 
-template <> struct _LIBCPP_TYPE_VIS_ONLY hash<int>
+template <> struct _LIBCPP_TEMPLATE_VIS hash<int>
     : public unary_function<int, size_t>
     : public unary_function<int, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -101,7 +101,7 @@ template <> struct _LIBCPP_TYPE_VIS_ONLY hash<int>
     }
     }
 };
 };
 
 
-template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned int>
+template <> struct _LIBCPP_TEMPLATE_VIS hash<unsigned int>
     : public unary_function<unsigned int, size_t>
     : public unary_function<unsigned int, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -111,7 +111,7 @@ template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned int>
     }
     }
 };
 };
 
 
-template <> struct _LIBCPP_TYPE_VIS_ONLY hash<long>
+template <> struct _LIBCPP_TEMPLATE_VIS hash<long>
     : public unary_function<long, size_t>
     : public unary_function<long, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -121,7 +121,7 @@ template <> struct _LIBCPP_TYPE_VIS_ONLY hash<long>
     }
     }
 };
 };
 
 
-template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned long>
+template <> struct _LIBCPP_TEMPLATE_VIS hash<unsigned long>
     : public unary_function<unsigned long, size_t>
     : public unary_function<unsigned long, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY

+ 13 - 13
include/ext/hash_map

@@ -364,7 +364,7 @@ public:
 };
 };
 
 
 template <class _HashIterator>
 template <class _HashIterator>
-class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator
+class _LIBCPP_TEMPLATE_VIS __hash_map_iterator
 {
 {
     _HashIterator __i_;
     _HashIterator __i_;
 
 
@@ -401,15 +401,15 @@ public:
     bool operator!=(const __hash_map_iterator& __x, const __hash_map_iterator& __y)
     bool operator!=(const __hash_map_iterator& __x, const __hash_map_iterator& __y)
         {return __x.__i_ != __y.__i_;}
         {return __x.__i_ != __y.__i_;}
 
 
-    template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY hash_map;
-    template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY hash_multimap;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator;
+    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS hash_map;
+    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS hash_multimap;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator;
 };
 };
 
 
 template <class _HashIterator>
 template <class _HashIterator>
-class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator
+class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator
 {
 {
     _HashIterator __i_;
     _HashIterator __i_;
 
 
@@ -454,15 +454,15 @@ public:
     bool operator!=(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y)
     bool operator!=(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y)
         {return __x.__i_ != __y.__i_;}
         {return __x.__i_ != __y.__i_;}
 
 
-    template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY hash_map;
-    template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY hash_multimap;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator;
+    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS hash_map;
+    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS hash_multimap;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;
 };
 };
 
 
 template <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,
 template <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,
           class _Alloc = allocator<pair<const _Key, _Tp> > >
           class _Alloc = allocator<pair<const _Key, _Tp> > >
-class _LIBCPP_TYPE_VIS_ONLY hash_map
+class _LIBCPP_TEMPLATE_VIS hash_map
 {
 {
 public:
 public:
     // types
     // types
@@ -736,7 +736,7 @@ operator!=(const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
 
 
 template <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,
 template <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,
           class _Alloc = allocator<pair<const _Key, _Tp> > >
           class _Alloc = allocator<pair<const _Key, _Tp> > >
-class _LIBCPP_TYPE_VIS_ONLY hash_multimap
+class _LIBCPP_TEMPLATE_VIS hash_multimap
 {
 {
 public:
 public:
     // types
     // types

+ 2 - 2
include/ext/hash_set

@@ -212,7 +212,7 @@ using namespace std;
 
 
 template <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,
 template <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,
           class _Alloc = allocator<_Value> >
           class _Alloc = allocator<_Value> >
-class _LIBCPP_TYPE_VIS_ONLY hash_set
+class _LIBCPP_TEMPLATE_VIS hash_set
 {
 {
 public:
 public:
     // types
     // types
@@ -434,7 +434,7 @@ operator!=(const hash_set<_Value, _Hash, _Pred, _Alloc>& __x,
 
 
 template <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,
 template <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,
           class _Alloc = allocator<_Value> >
           class _Alloc = allocator<_Value> >
-class _LIBCPP_TYPE_VIS_ONLY hash_multiset
+class _LIBCPP_TEMPLATE_VIS hash_multiset
 {
 {
 public:
 public:
     // types
     // types

+ 7 - 7
include/forward_list

@@ -266,11 +266,11 @@ struct __forward_list_node
 };
 };
 
 
 
 
-template <class _Tp, class _Alloc = allocator<_Tp> > class _LIBCPP_TYPE_VIS_ONLY forward_list;
-template<class _NodeConstPtr> class _LIBCPP_TYPE_VIS_ONLY __forward_list_const_iterator;
+template <class _Tp, class _Alloc = allocator<_Tp> > class _LIBCPP_TEMPLATE_VIS forward_list;
+template<class _NodeConstPtr> class _LIBCPP_TEMPLATE_VIS __forward_list_const_iterator;
 
 
 template <class _NodePtr>
 template <class _NodePtr>
-class _LIBCPP_TYPE_VIS_ONLY __forward_list_iterator
+class _LIBCPP_TEMPLATE_VIS __forward_list_iterator
 {
 {
     typedef __forward_node_traits<_NodePtr>         __traits;
     typedef __forward_node_traits<_NodePtr>         __traits;
     typedef typename __traits::__node_pointer       __node_pointer;
     typedef typename __traits::__node_pointer       __node_pointer;
@@ -302,8 +302,8 @@ class _LIBCPP_TYPE_VIS_ONLY __forward_list_iterator
     explicit __forward_list_iterator(__node_pointer __p) _NOEXCEPT
     explicit __forward_list_iterator(__node_pointer __p) _NOEXCEPT
         : __ptr_(__traits::__as_iter_node(__p)) {}
         : __ptr_(__traits::__as_iter_node(__p)) {}
 
 
-    template<class, class> friend class _LIBCPP_TYPE_VIS_ONLY forward_list;
-    template<class> friend class _LIBCPP_TYPE_VIS_ONLY __forward_list_const_iterator;
+    template<class, class> friend class _LIBCPP_TEMPLATE_VIS forward_list;
+    template<class> friend class _LIBCPP_TEMPLATE_VIS __forward_list_const_iterator;
 
 
 public:
 public:
     typedef forward_iterator_tag                              iterator_category;
     typedef forward_iterator_tag                              iterator_category;
@@ -348,7 +348,7 @@ public:
 };
 };
 
 
 template <class _NodeConstPtr>
 template <class _NodeConstPtr>
-class _LIBCPP_TYPE_VIS_ONLY __forward_list_const_iterator
+class _LIBCPP_TEMPLATE_VIS __forward_list_const_iterator
 {
 {
     static_assert((!is_const<typename pointer_traits<_NodeConstPtr>::element_type>::value), "");
     static_assert((!is_const<typename pointer_traits<_NodeConstPtr>::element_type>::value), "");
     typedef _NodeConstPtr _NodePtr;
     typedef _NodeConstPtr _NodePtr;
@@ -604,7 +604,7 @@ __forward_list_base<_Tp, _Alloc>::clear() _NOEXCEPT
 }
 }
 
 
 template <class _Tp, class _Alloc /*= allocator<_Tp>*/>
 template <class _Tp, class _Alloc /*= allocator<_Tp>*/>
-class _LIBCPP_TYPE_VIS_ONLY forward_list
+class _LIBCPP_TEMPLATE_VIS forward_list
     : private __forward_list_base<_Tp, _Alloc>
     : private __forward_list_base<_Tp, _Alloc>
 {
 {
     typedef __forward_list_base<_Tp, _Alloc> base;
     typedef __forward_list_base<_Tp, _Alloc> base;

+ 4 - 4
include/fstream

@@ -180,7 +180,7 @@ typedef basic_fstream<wchar_t> wfstream;
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
 template <class _CharT, class _Traits>
 template <class _CharT, class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY basic_filebuf
+class _LIBCPP_TEMPLATE_VIS basic_filebuf
     : public basic_streambuf<_CharT, _Traits>
     : public basic_streambuf<_CharT, _Traits>
 {
 {
 public:
 public:
@@ -999,7 +999,7 @@ basic_filebuf<_CharT, _Traits>::__write_mode()
 // basic_ifstream
 // basic_ifstream
 
 
 template <class _CharT, class _Traits>
 template <class _CharT, class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY basic_ifstream
+class _LIBCPP_TEMPLATE_VIS basic_ifstream
     : public basic_istream<_CharT, _Traits>
     : public basic_istream<_CharT, _Traits>
 {
 {
 public:
 public:
@@ -1161,7 +1161,7 @@ basic_ifstream<_CharT, _Traits>::close()
 // basic_ofstream
 // basic_ofstream
 
 
 template <class _CharT, class _Traits>
 template <class _CharT, class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY basic_ofstream
+class _LIBCPP_TEMPLATE_VIS basic_ofstream
     : public basic_ostream<_CharT, _Traits>
     : public basic_ostream<_CharT, _Traits>
 {
 {
 public:
 public:
@@ -1321,7 +1321,7 @@ basic_ofstream<_CharT, _Traits>::close()
 // basic_fstream
 // basic_fstream
 
 
 template <class _CharT, class _Traits>
 template <class _CharT, class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY basic_fstream
+class _LIBCPP_TEMPLATE_VIS basic_fstream
     : public basic_iostream<_CharT, _Traits>
     : public basic_iostream<_CharT, _Traits>
 {
 {
 public:
 public:

+ 78 - 78
include/functional

@@ -499,7 +499,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY plus : binary_function<_Tp, _Tp, _Tp>
+struct _LIBCPP_TEMPLATE_VIS plus : binary_function<_Tp, _Tp, _Tp>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
@@ -508,7 +508,7 @@ struct _LIBCPP_TYPE_VIS_ONLY plus : binary_function<_Tp, _Tp, _Tp>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY plus<void>
+struct _LIBCPP_TEMPLATE_VIS plus<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -526,7 +526,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY minus : binary_function<_Tp, _Tp, _Tp>
+struct _LIBCPP_TEMPLATE_VIS minus : binary_function<_Tp, _Tp, _Tp>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
@@ -535,7 +535,7 @@ struct _LIBCPP_TYPE_VIS_ONLY minus : binary_function<_Tp, _Tp, _Tp>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY minus<void>
+struct _LIBCPP_TEMPLATE_VIS minus<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -553,7 +553,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY multiplies : binary_function<_Tp, _Tp, _Tp>
+struct _LIBCPP_TEMPLATE_VIS multiplies : binary_function<_Tp, _Tp, _Tp>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
@@ -562,7 +562,7 @@ struct _LIBCPP_TYPE_VIS_ONLY multiplies : binary_function<_Tp, _Tp, _Tp>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY multiplies<void>
+struct _LIBCPP_TEMPLATE_VIS multiplies<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -580,7 +580,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY divides : binary_function<_Tp, _Tp, _Tp>
+struct _LIBCPP_TEMPLATE_VIS divides : binary_function<_Tp, _Tp, _Tp>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
@@ -589,7 +589,7 @@ struct _LIBCPP_TYPE_VIS_ONLY divides : binary_function<_Tp, _Tp, _Tp>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY divides<void>
+struct _LIBCPP_TEMPLATE_VIS divides<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -607,7 +607,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY modulus : binary_function<_Tp, _Tp, _Tp>
+struct _LIBCPP_TEMPLATE_VIS modulus : binary_function<_Tp, _Tp, _Tp>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
@@ -616,7 +616,7 @@ struct _LIBCPP_TYPE_VIS_ONLY modulus : binary_function<_Tp, _Tp, _Tp>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY modulus<void>
+struct _LIBCPP_TEMPLATE_VIS modulus<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -634,7 +634,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY negate : unary_function<_Tp, _Tp>
+struct _LIBCPP_TEMPLATE_VIS negate : unary_function<_Tp, _Tp>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _Tp operator()(const _Tp& __x) const
     _Tp operator()(const _Tp& __x) const
@@ -643,7 +643,7 @@ struct _LIBCPP_TYPE_VIS_ONLY negate : unary_function<_Tp, _Tp>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY negate<void>
+struct _LIBCPP_TEMPLATE_VIS negate<void>
 {
 {
     template <class _Tp>
     template <class _Tp>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -661,7 +661,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY equal_to : binary_function<_Tp, _Tp, bool>
+struct _LIBCPP_TEMPLATE_VIS equal_to : binary_function<_Tp, _Tp, bool>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     bool operator()(const _Tp& __x, const _Tp& __y) const
     bool operator()(const _Tp& __x, const _Tp& __y) const
@@ -670,7 +670,7 @@ struct _LIBCPP_TYPE_VIS_ONLY equal_to : binary_function<_Tp, _Tp, bool>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY equal_to<void>
+struct _LIBCPP_TEMPLATE_VIS equal_to<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -688,7 +688,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY not_equal_to : binary_function<_Tp, _Tp, bool>
+struct _LIBCPP_TEMPLATE_VIS not_equal_to : binary_function<_Tp, _Tp, bool>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     bool operator()(const _Tp& __x, const _Tp& __y) const
     bool operator()(const _Tp& __x, const _Tp& __y) const
@@ -697,7 +697,7 @@ struct _LIBCPP_TYPE_VIS_ONLY not_equal_to : binary_function<_Tp, _Tp, bool>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY not_equal_to<void>
+struct _LIBCPP_TEMPLATE_VIS not_equal_to<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -715,7 +715,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY greater : binary_function<_Tp, _Tp, bool>
+struct _LIBCPP_TEMPLATE_VIS greater : binary_function<_Tp, _Tp, bool>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     bool operator()(const _Tp& __x, const _Tp& __y) const
     bool operator()(const _Tp& __x, const _Tp& __y) const
@@ -724,7 +724,7 @@ struct _LIBCPP_TYPE_VIS_ONLY greater : binary_function<_Tp, _Tp, bool>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY greater<void>
+struct _LIBCPP_TEMPLATE_VIS greater<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -744,7 +744,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY greater_equal : binary_function<_Tp, _Tp, bool>
+struct _LIBCPP_TEMPLATE_VIS greater_equal : binary_function<_Tp, _Tp, bool>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     bool operator()(const _Tp& __x, const _Tp& __y) const
     bool operator()(const _Tp& __x, const _Tp& __y) const
@@ -753,7 +753,7 @@ struct _LIBCPP_TYPE_VIS_ONLY greater_equal : binary_function<_Tp, _Tp, bool>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY greater_equal<void>
+struct _LIBCPP_TEMPLATE_VIS greater_equal<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -771,7 +771,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY less_equal : binary_function<_Tp, _Tp, bool>
+struct _LIBCPP_TEMPLATE_VIS less_equal : binary_function<_Tp, _Tp, bool>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     bool operator()(const _Tp& __x, const _Tp& __y) const
     bool operator()(const _Tp& __x, const _Tp& __y) const
@@ -780,7 +780,7 @@ struct _LIBCPP_TYPE_VIS_ONLY less_equal : binary_function<_Tp, _Tp, bool>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY less_equal<void>
+struct _LIBCPP_TEMPLATE_VIS less_equal<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -798,7 +798,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY logical_and : binary_function<_Tp, _Tp, bool>
+struct _LIBCPP_TEMPLATE_VIS logical_and : binary_function<_Tp, _Tp, bool>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     bool operator()(const _Tp& __x, const _Tp& __y) const
     bool operator()(const _Tp& __x, const _Tp& __y) const
@@ -807,7 +807,7 @@ struct _LIBCPP_TYPE_VIS_ONLY logical_and : binary_function<_Tp, _Tp, bool>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY logical_and<void>
+struct _LIBCPP_TEMPLATE_VIS logical_and<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -825,7 +825,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY logical_or : binary_function<_Tp, _Tp, bool>
+struct _LIBCPP_TEMPLATE_VIS logical_or : binary_function<_Tp, _Tp, bool>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     bool operator()(const _Tp& __x, const _Tp& __y) const
     bool operator()(const _Tp& __x, const _Tp& __y) const
@@ -834,7 +834,7 @@ struct _LIBCPP_TYPE_VIS_ONLY logical_or : binary_function<_Tp, _Tp, bool>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY logical_or<void>
+struct _LIBCPP_TEMPLATE_VIS logical_or<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -852,7 +852,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY logical_not : unary_function<_Tp, bool>
+struct _LIBCPP_TEMPLATE_VIS logical_not : unary_function<_Tp, bool>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     bool operator()(const _Tp& __x) const
     bool operator()(const _Tp& __x) const
@@ -861,7 +861,7 @@ struct _LIBCPP_TYPE_VIS_ONLY logical_not : unary_function<_Tp, bool>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY logical_not<void>
+struct _LIBCPP_TEMPLATE_VIS logical_not<void>
 {
 {
     template <class _Tp>
     template <class _Tp>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -879,7 +879,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY bit_and : binary_function<_Tp, _Tp, _Tp>
+struct _LIBCPP_TEMPLATE_VIS bit_and : binary_function<_Tp, _Tp, _Tp>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
@@ -888,7 +888,7 @@ struct _LIBCPP_TYPE_VIS_ONLY bit_and : binary_function<_Tp, _Tp, _Tp>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY bit_and<void>
+struct _LIBCPP_TEMPLATE_VIS bit_and<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -906,7 +906,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY bit_or : binary_function<_Tp, _Tp, _Tp>
+struct _LIBCPP_TEMPLATE_VIS bit_or : binary_function<_Tp, _Tp, _Tp>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
@@ -915,7 +915,7 @@ struct _LIBCPP_TYPE_VIS_ONLY bit_or : binary_function<_Tp, _Tp, _Tp>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY bit_or<void>
+struct _LIBCPP_TEMPLATE_VIS bit_or<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -933,7 +933,7 @@ template <class _Tp = void>
 #else
 #else
 template <class _Tp>
 template <class _Tp>
 #endif
 #endif
-struct _LIBCPP_TYPE_VIS_ONLY bit_xor : binary_function<_Tp, _Tp, _Tp>
+struct _LIBCPP_TEMPLATE_VIS bit_xor : binary_function<_Tp, _Tp, _Tp>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
     _Tp operator()(const _Tp& __x, const _Tp& __y) const
@@ -942,7 +942,7 @@ struct _LIBCPP_TYPE_VIS_ONLY bit_xor : binary_function<_Tp, _Tp, _Tp>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY bit_xor<void>
+struct _LIBCPP_TEMPLATE_VIS bit_xor<void>
 {
 {
     template <class _T1, class _T2>
     template <class _T1, class _T2>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -957,7 +957,7 @@ struct _LIBCPP_TYPE_VIS_ONLY bit_xor<void>
 
 
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 template <class _Tp = void>
 template <class _Tp = void>
-struct _LIBCPP_TYPE_VIS_ONLY bit_not : unary_function<_Tp, _Tp>
+struct _LIBCPP_TEMPLATE_VIS bit_not : unary_function<_Tp, _Tp>
 {
 {
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _Tp operator()(const _Tp& __x) const
     _Tp operator()(const _Tp& __x) const
@@ -965,7 +965,7 @@ struct _LIBCPP_TYPE_VIS_ONLY bit_not : unary_function<_Tp, _Tp>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY bit_not<void>
+struct _LIBCPP_TEMPLATE_VIS bit_not<void>
 {
 {
     template <class _Tp>
     template <class _Tp>
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
@@ -978,7 +978,7 @@ struct _LIBCPP_TYPE_VIS_ONLY bit_not<void>
 #endif
 #endif
 
 
 template <class _Predicate>
 template <class _Predicate>
-class _LIBCPP_TYPE_VIS_ONLY unary_negate
+class _LIBCPP_TEMPLATE_VIS unary_negate
     : public unary_function<typename _Predicate::argument_type, bool>
     : public unary_function<typename _Predicate::argument_type, bool>
 {
 {
     _Predicate __pred_;
     _Predicate __pred_;
@@ -997,7 +997,7 @@ unary_negate<_Predicate>
 not1(const _Predicate& __pred) {return unary_negate<_Predicate>(__pred);}
 not1(const _Predicate& __pred) {return unary_negate<_Predicate>(__pred);}
 
 
 template <class _Predicate>
 template <class _Predicate>
-class _LIBCPP_TYPE_VIS_ONLY binary_negate
+class _LIBCPP_TEMPLATE_VIS binary_negate
     : public binary_function<typename _Predicate::first_argument_type,
     : public binary_function<typename _Predicate::first_argument_type,
                              typename _Predicate::second_argument_type,
                              typename _Predicate::second_argument_type,
                              bool>
                              bool>
@@ -1019,7 +1019,7 @@ binary_negate<_Predicate>
 not2(const _Predicate& __pred) {return binary_negate<_Predicate>(__pred);}
 not2(const _Predicate& __pred) {return binary_negate<_Predicate>(__pred);}
 
 
 template <class __Operation>
 template <class __Operation>
-class _LIBCPP_TYPE_VIS_ONLY binder1st
+class _LIBCPP_TEMPLATE_VIS binder1st
     : public unary_function<typename __Operation::second_argument_type,
     : public unary_function<typename __Operation::second_argument_type,
                             typename __Operation::result_type>
                             typename __Operation::result_type>
 {
 {
@@ -1045,7 +1045,7 @@ bind1st(const __Operation& __op, const _Tp& __x)
     {return binder1st<__Operation>(__op, __x);}
     {return binder1st<__Operation>(__op, __x);}
 
 
 template <class __Operation>
 template <class __Operation>
-class _LIBCPP_TYPE_VIS_ONLY binder2nd
+class _LIBCPP_TEMPLATE_VIS binder2nd
     : public unary_function<typename __Operation::first_argument_type,
     : public unary_function<typename __Operation::first_argument_type,
                             typename __Operation::result_type>
                             typename __Operation::result_type>
 {
 {
@@ -1071,7 +1071,7 @@ bind2nd(const __Operation& __op, const _Tp& __x)
     {return binder2nd<__Operation>(__op, __x);}
     {return binder2nd<__Operation>(__op, __x);}
 
 
 template <class _Arg, class _Result>
 template <class _Arg, class _Result>
-class _LIBCPP_TYPE_VIS_ONLY pointer_to_unary_function
+class _LIBCPP_TEMPLATE_VIS pointer_to_unary_function
     : public unary_function<_Arg, _Result>
     : public unary_function<_Arg, _Result>
 {
 {
     _Result (*__f_)(_Arg);
     _Result (*__f_)(_Arg);
@@ -1089,7 +1089,7 @@ ptr_fun(_Result (*__f)(_Arg))
     {return pointer_to_unary_function<_Arg,_Result>(__f);}
     {return pointer_to_unary_function<_Arg,_Result>(__f);}
 
 
 template <class _Arg1, class _Arg2, class _Result>
 template <class _Arg1, class _Arg2, class _Result>
-class _LIBCPP_TYPE_VIS_ONLY pointer_to_binary_function
+class _LIBCPP_TEMPLATE_VIS pointer_to_binary_function
     : public binary_function<_Arg1, _Arg2, _Result>
     : public binary_function<_Arg1, _Arg2, _Result>
 {
 {
     _Result (*__f_)(_Arg1, _Arg2);
     _Result (*__f_)(_Arg1, _Arg2);
@@ -1107,7 +1107,7 @@ ptr_fun(_Result (*__f)(_Arg1,_Arg2))
     {return pointer_to_binary_function<_Arg1,_Arg2,_Result>(__f);}
     {return pointer_to_binary_function<_Arg1,_Arg2,_Result>(__f);}
 
 
 template<class _Sp, class _Tp>
 template<class _Sp, class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY mem_fun_t : public unary_function<_Tp*, _Sp>
+class _LIBCPP_TEMPLATE_VIS mem_fun_t : public unary_function<_Tp*, _Sp>
 {
 {
     _Sp (_Tp::*__p_)();
     _Sp (_Tp::*__p_)();
 public:
 public:
@@ -1118,7 +1118,7 @@ public:
 };
 };
 
 
 template<class _Sp, class _Tp, class _Ap>
 template<class _Sp, class _Tp, class _Ap>
-class _LIBCPP_TYPE_VIS_ONLY mem_fun1_t : public binary_function<_Tp*, _Ap, _Sp>
+class _LIBCPP_TEMPLATE_VIS mem_fun1_t : public binary_function<_Tp*, _Ap, _Sp>
 {
 {
     _Sp (_Tp::*__p_)(_Ap);
     _Sp (_Tp::*__p_)(_Ap);
 public:
 public:
@@ -1141,7 +1141,7 @@ mem_fun(_Sp (_Tp::*__f)(_Ap))
     {return mem_fun1_t<_Sp,_Tp,_Ap>(__f);}
     {return mem_fun1_t<_Sp,_Tp,_Ap>(__f);}
 
 
 template<class _Sp, class _Tp>
 template<class _Sp, class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY mem_fun_ref_t : public unary_function<_Tp, _Sp>
+class _LIBCPP_TEMPLATE_VIS mem_fun_ref_t : public unary_function<_Tp, _Sp>
 {
 {
     _Sp (_Tp::*__p_)();
     _Sp (_Tp::*__p_)();
 public:
 public:
@@ -1152,7 +1152,7 @@ public:
 };
 };
 
 
 template<class _Sp, class _Tp, class _Ap>
 template<class _Sp, class _Tp, class _Ap>
-class _LIBCPP_TYPE_VIS_ONLY mem_fun1_ref_t : public binary_function<_Tp, _Ap, _Sp>
+class _LIBCPP_TEMPLATE_VIS mem_fun1_ref_t : public binary_function<_Tp, _Ap, _Sp>
 {
 {
     _Sp (_Tp::*__p_)(_Ap);
     _Sp (_Tp::*__p_)(_Ap);
 public:
 public:
@@ -1175,7 +1175,7 @@ mem_fun_ref(_Sp (_Tp::*__f)(_Ap))
     {return mem_fun1_ref_t<_Sp,_Tp,_Ap>(__f);}
     {return mem_fun1_ref_t<_Sp,_Tp,_Ap>(__f);}
 
 
 template <class _Sp, class _Tp>
 template <class _Sp, class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY const_mem_fun_t : public unary_function<const _Tp*, _Sp>
+class _LIBCPP_TEMPLATE_VIS const_mem_fun_t : public unary_function<const _Tp*, _Sp>
 {
 {
     _Sp (_Tp::*__p_)() const;
     _Sp (_Tp::*__p_)() const;
 public:
 public:
@@ -1186,7 +1186,7 @@ public:
 };
 };
 
 
 template <class _Sp, class _Tp, class _Ap>
 template <class _Sp, class _Tp, class _Ap>
-class _LIBCPP_TYPE_VIS_ONLY const_mem_fun1_t : public binary_function<const _Tp*, _Ap, _Sp>
+class _LIBCPP_TEMPLATE_VIS const_mem_fun1_t : public binary_function<const _Tp*, _Ap, _Sp>
 {
 {
     _Sp (_Tp::*__p_)(_Ap) const;
     _Sp (_Tp::*__p_)(_Ap) const;
 public:
 public:
@@ -1209,7 +1209,7 @@ mem_fun(_Sp (_Tp::*__f)(_Ap) const)
     {return const_mem_fun1_t<_Sp,_Tp,_Ap>(__f);}
     {return const_mem_fun1_t<_Sp,_Tp,_Ap>(__f);}
 
 
 template <class _Sp, class _Tp>
 template <class _Sp, class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY const_mem_fun_ref_t : public unary_function<_Tp, _Sp>
+class _LIBCPP_TEMPLATE_VIS const_mem_fun_ref_t : public unary_function<_Tp, _Sp>
 {
 {
     _Sp (_Tp::*__p_)() const;
     _Sp (_Tp::*__p_)() const;
 public:
 public:
@@ -1220,7 +1220,7 @@ public:
 };
 };
 
 
 template <class _Sp, class _Tp, class _Ap>
 template <class _Sp, class _Tp, class _Ap>
-class _LIBCPP_TYPE_VIS_ONLY const_mem_fun1_ref_t
+class _LIBCPP_TEMPLATE_VIS const_mem_fun1_ref_t
     : public binary_function<_Tp, _Ap, _Sp>
     : public binary_function<_Tp, _Ap, _Sp>
 {
 {
     _Sp (_Tp::*__p_)(_Ap) const;
     _Sp (_Tp::*__p_)(_Ap) const;
@@ -1399,7 +1399,7 @@ void __throw_bad_function_call()
 #endif
 #endif
 }
 }
 
 
-template<class _Fp> class _LIBCPP_TYPE_VIS_ONLY function; // undefined
+template<class _Fp> class _LIBCPP_TEMPLATE_VIS function; // undefined
 
 
 namespace __function
 namespace __function
 {
 {
@@ -1575,7 +1575,7 @@ __func<_Fp, _Alloc, _Rp(_ArgTypes...)>::target_type() const _NOEXCEPT
 }  // __function
 }  // __function
 
 
 template<class _Rp, class ..._ArgTypes>
 template<class _Rp, class ..._ArgTypes>
-class _LIBCPP_TYPE_VIS_ONLY function<_Rp(_ArgTypes...)>
+class _LIBCPP_TEMPLATE_VIS function<_Rp(_ArgTypes...)>
     : public __function::__maybe_derive_from_unary_function<_Rp(_ArgTypes...)>,
     : public __function::__maybe_derive_from_unary_function<_Rp(_ArgTypes...)>,
       public __function::__maybe_derive_from_binary_function<_Rp(_ArgTypes...)>
       public __function::__maybe_derive_from_binary_function<_Rp(_ArgTypes...)>
 {
 {
@@ -1984,7 +1984,7 @@ swap(function<_Rp(_ArgTypes...)>& __x, function<_Rp(_ArgTypes...)>& __y) _NOEXCE
 //==============================================================================
 //==============================================================================
 
 
 template<class _Tp> struct __is_bind_expression : public false_type {};
 template<class _Tp> struct __is_bind_expression : public false_type {};
-template<class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_bind_expression
+template<class _Tp> struct _LIBCPP_TEMPLATE_VIS is_bind_expression
     : public __is_bind_expression<typename remove_cv<_Tp>::type> {};
     : public __is_bind_expression<typename remove_cv<_Tp>::type> {};
 
 
 #if _LIBCPP_STD_VER > 14
 #if _LIBCPP_STD_VER > 14
@@ -1993,7 +1993,7 @@ constexpr size_t is_bind_expression_v = is_bind_expression<_Tp>::value;
 #endif
 #endif
 
 
 template<class _Tp> struct __is_placeholder : public integral_constant<int, 0> {};
 template<class _Tp> struct __is_placeholder : public integral_constant<int, 0> {};
-template<class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_placeholder
+template<class _Tp> struct _LIBCPP_TEMPLATE_VIS is_placeholder
     : public __is_placeholder<typename remove_cv<_Tp>::type> {};
     : public __is_placeholder<typename remove_cv<_Tp>::type> {};
 
 
 #if _LIBCPP_STD_VER > 14
 #if _LIBCPP_STD_VER > 14
@@ -2340,7 +2340,7 @@ bind(_Fp&& __f, _BoundArgs&&... __bound_args)
 #endif  // _LIBCPP_HAS_NO_VARIADICS
 #endif  // _LIBCPP_HAS_NO_VARIADICS
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<bool>
+struct _LIBCPP_TEMPLATE_VIS hash<bool>
     : public unary_function<bool, size_t>
     : public unary_function<bool, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2348,7 +2348,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<bool>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<char>
+struct _LIBCPP_TEMPLATE_VIS hash<char>
     : public unary_function<char, size_t>
     : public unary_function<char, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2356,7 +2356,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<char>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<signed char>
+struct _LIBCPP_TEMPLATE_VIS hash<signed char>
     : public unary_function<signed char, size_t>
     : public unary_function<signed char, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2364,7 +2364,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<signed char>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned char>
+struct _LIBCPP_TEMPLATE_VIS hash<unsigned char>
     : public unary_function<unsigned char, size_t>
     : public unary_function<unsigned char, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2374,7 +2374,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned char>
 #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
 #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<char16_t>
+struct _LIBCPP_TEMPLATE_VIS hash<char16_t>
     : public unary_function<char16_t, size_t>
     : public unary_function<char16_t, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2382,7 +2382,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<char16_t>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<char32_t>
+struct _LIBCPP_TEMPLATE_VIS hash<char32_t>
     : public unary_function<char32_t, size_t>
     : public unary_function<char32_t, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2392,7 +2392,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<char32_t>
 #endif  // _LIBCPP_HAS_NO_UNICODE_CHARS
 #endif  // _LIBCPP_HAS_NO_UNICODE_CHARS
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<wchar_t>
+struct _LIBCPP_TEMPLATE_VIS hash<wchar_t>
     : public unary_function<wchar_t, size_t>
     : public unary_function<wchar_t, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2400,7 +2400,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<wchar_t>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<short>
+struct _LIBCPP_TEMPLATE_VIS hash<short>
     : public unary_function<short, size_t>
     : public unary_function<short, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2408,7 +2408,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<short>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned short>
+struct _LIBCPP_TEMPLATE_VIS hash<unsigned short>
     : public unary_function<unsigned short, size_t>
     : public unary_function<unsigned short, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2416,7 +2416,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned short>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<int>
+struct _LIBCPP_TEMPLATE_VIS hash<int>
     : public unary_function<int, size_t>
     : public unary_function<int, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2424,7 +2424,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<int>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned int>
+struct _LIBCPP_TEMPLATE_VIS hash<unsigned int>
     : public unary_function<unsigned int, size_t>
     : public unary_function<unsigned int, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2432,7 +2432,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned int>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<long>
+struct _LIBCPP_TEMPLATE_VIS hash<long>
     : public unary_function<long, size_t>
     : public unary_function<long, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2440,7 +2440,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<long>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned long>
+struct _LIBCPP_TEMPLATE_VIS hash<unsigned long>
     : public unary_function<unsigned long, size_t>
     : public unary_function<unsigned long, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2448,13 +2448,13 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned long>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<long long>
+struct _LIBCPP_TEMPLATE_VIS hash<long long>
     : public __scalar_hash<long long>
     : public __scalar_hash<long long>
 {
 {
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned long long>
+struct _LIBCPP_TEMPLATE_VIS hash<unsigned long long>
     : public __scalar_hash<unsigned long long>
     : public __scalar_hash<unsigned long long>
 {
 {
 };
 };
@@ -2462,13 +2462,13 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned long long>
 #ifndef _LIBCPP_HAS_NO_INT128
 #ifndef _LIBCPP_HAS_NO_INT128
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<__int128_t>
+struct _LIBCPP_TEMPLATE_VIS hash<__int128_t>
     : public __scalar_hash<__int128_t>
     : public __scalar_hash<__int128_t>
 {
 {
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<__uint128_t>
+struct _LIBCPP_TEMPLATE_VIS hash<__uint128_t>
     : public __scalar_hash<__uint128_t>
     : public __scalar_hash<__uint128_t>
 {
 {
 };
 };
@@ -2476,7 +2476,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<__uint128_t>
 #endif
 #endif
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<float>
+struct _LIBCPP_TEMPLATE_VIS hash<float>
     : public __scalar_hash<float>
     : public __scalar_hash<float>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2490,7 +2490,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<float>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<double>
+struct _LIBCPP_TEMPLATE_VIS hash<double>
     : public __scalar_hash<double>
     : public __scalar_hash<double>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2504,7 +2504,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<double>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<long double>
+struct _LIBCPP_TEMPLATE_VIS hash<long double>
     : public __scalar_hash<long double>
     : public __scalar_hash<long double>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2556,7 +2556,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<long double>
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 
 
 template <class _Tp, bool = is_enum<_Tp>::value>
 template <class _Tp, bool = is_enum<_Tp>::value>
-struct _LIBCPP_TYPE_VIS_ONLY __enum_hash
+struct _LIBCPP_TEMPLATE_VIS __enum_hash
     : public unary_function<_Tp, size_t>
     : public unary_function<_Tp, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -2567,14 +2567,14 @@ struct _LIBCPP_TYPE_VIS_ONLY __enum_hash
     }
     }
 };
 };
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY __enum_hash<_Tp, false> {
+struct _LIBCPP_TEMPLATE_VIS __enum_hash<_Tp, false> {
     __enum_hash() = delete;
     __enum_hash() = delete;
     __enum_hash(__enum_hash const&) = delete;
     __enum_hash(__enum_hash const&) = delete;
     __enum_hash& operator=(__enum_hash const&) = delete;
     __enum_hash& operator=(__enum_hash const&) = delete;
 };
 };
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY hash : public __enum_hash<_Tp>
+struct _LIBCPP_TEMPLATE_VIS hash : public __enum_hash<_Tp>
 {
 {
 };
 };
 #endif
 #endif
@@ -2593,7 +2593,7 @@ invoke(_Fn&& __f, _Args&&... __args)
 }
 }
 
 
 template <class _DecayFunc>
 template <class _DecayFunc>
-class _LIBCPP_TYPE_VIS_ONLY __not_fn_imp {
+class _LIBCPP_TEMPLATE_VIS __not_fn_imp {
   _DecayFunc __fd;
   _DecayFunc __fd;
 
 
 public:
 public:

+ 15 - 15
include/future

@@ -391,11 +391,11 @@ _LIBCPP_DECLARE_STRONG_ENUM(future_errc)
 _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(future_errc)
 _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(future_errc)
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY is_error_code_enum<future_errc> : public true_type {};
+struct _LIBCPP_TEMPLATE_VIS is_error_code_enum<future_errc> : public true_type {};
 
 
 #ifdef _LIBCPP_HAS_NO_STRONG_ENUMS
 #ifdef _LIBCPP_HAS_NO_STRONG_ENUMS
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY is_error_code_enum<future_errc::__lx> : public true_type { };
+struct _LIBCPP_TEMPLATE_VIS is_error_code_enum<future_errc::__lx> : public true_type { };
 #endif
 #endif
 
 
 //enum class launch
 //enum class launch
@@ -1051,12 +1051,12 @@ __async_assoc_state<void, _Fp>::__on_zero_shared() _NOEXCEPT
     base::__on_zero_shared();
     base::__on_zero_shared();
 }
 }
 
 
-template <class _Rp> class _LIBCPP_TYPE_VIS_ONLY promise;
-template <class _Rp> class _LIBCPP_TYPE_VIS_ONLY shared_future;
+template <class _Rp> class _LIBCPP_TEMPLATE_VIS promise;
+template <class _Rp> class _LIBCPP_TEMPLATE_VIS shared_future;
 
 
 // future
 // future
 
 
-template <class _Rp> class _LIBCPP_TYPE_VIS_ONLY future;
+template <class _Rp> class _LIBCPP_TEMPLATE_VIS future;
 
 
 template <class _Rp, class _Fp>
 template <class _Rp, class _Fp>
 future<_Rp>
 future<_Rp>
@@ -1075,7 +1075,7 @@ __make_async_assoc_state(_Fp __f);
 #endif
 #endif
 
 
 template <class _Rp>
 template <class _Rp>
-class _LIBCPP_TYPE_VIS_ONLY future
+class _LIBCPP_TEMPLATE_VIS future
 {
 {
     __assoc_state<_Rp>* __state_;
     __assoc_state<_Rp>* __state_;
 
 
@@ -1178,7 +1178,7 @@ future<_Rp>::get()
 }
 }
 
 
 template <class _Rp>
 template <class _Rp>
-class _LIBCPP_TYPE_VIS_ONLY future<_Rp&>
+class _LIBCPP_TEMPLATE_VIS future<_Rp&>
 {
 {
     __assoc_state<_Rp&>* __state_;
     __assoc_state<_Rp&>* __state_;
 
 
@@ -1359,7 +1359,7 @@ swap(future<_Rp>& __x, future<_Rp>& __y) _NOEXCEPT
 template <class _Callable> class packaged_task;
 template <class _Callable> class packaged_task;
 
 
 template <class _Rp>
 template <class _Rp>
-class _LIBCPP_TYPE_VIS_ONLY promise
+class _LIBCPP_TEMPLATE_VIS promise
 {
 {
     __assoc_state<_Rp>* __state_;
     __assoc_state<_Rp>* __state_;
 
 
@@ -1526,7 +1526,7 @@ promise<_Rp>::set_exception_at_thread_exit(exception_ptr __p)
 // promise<R&>
 // promise<R&>
 
 
 template <class _Rp>
 template <class _Rp>
-class _LIBCPP_TYPE_VIS_ONLY promise<_Rp&>
+class _LIBCPP_TEMPLATE_VIS promise<_Rp&>
 {
 {
     __assoc_state<_Rp&>* __state_;
     __assoc_state<_Rp&>* __state_;
 
 
@@ -1737,7 +1737,7 @@ swap(promise<_Rp>& __x, promise<_Rp>& __y) _NOEXCEPT
 }
 }
 
 
 template <class _Rp, class _Alloc>
 template <class _Rp, class _Alloc>
-    struct _LIBCPP_TYPE_VIS_ONLY uses_allocator<promise<_Rp>, _Alloc>
+    struct _LIBCPP_TEMPLATE_VIS uses_allocator<promise<_Rp>, _Alloc>
         : public true_type {};
         : public true_type {};
 
 
 #ifndef _LIBCPP_HAS_NO_VARIADICS
 #ifndef _LIBCPP_HAS_NO_VARIADICS
@@ -1998,7 +1998,7 @@ __packaged_task_function<_Rp(_ArgTypes...)>::operator()(_ArgTypes... __arg) cons
 }
 }
 
 
 template<class _Rp, class ..._ArgTypes>
 template<class _Rp, class ..._ArgTypes>
-class _LIBCPP_TYPE_VIS_ONLY packaged_task<_Rp(_ArgTypes...)>
+class _LIBCPP_TEMPLATE_VIS packaged_task<_Rp(_ArgTypes...)>
 {
 {
 public:
 public:
     typedef _Rp result_type; // extension
     typedef _Rp result_type; // extension
@@ -2127,7 +2127,7 @@ packaged_task<_Rp(_ArgTypes...)>::reset()
 }
 }
 
 
 template<class ..._ArgTypes>
 template<class ..._ArgTypes>
-class _LIBCPP_TYPE_VIS_ONLY packaged_task<void(_ArgTypes...)>
+class _LIBCPP_TEMPLATE_VIS packaged_task<void(_ArgTypes...)>
 {
 {
 public:
 public:
     typedef void result_type; // extension
     typedef void result_type; // extension
@@ -2266,7 +2266,7 @@ swap(packaged_task<_Callable>& __x, packaged_task<_Callable>& __y) _NOEXCEPT
 }
 }
 
 
 template <class _Callable, class _Alloc>
 template <class _Callable, class _Alloc>
-struct _LIBCPP_TYPE_VIS_ONLY uses_allocator<packaged_task<_Callable>, _Alloc>
+struct _LIBCPP_TEMPLATE_VIS uses_allocator<packaged_task<_Callable>, _Alloc>
     : public true_type {};
     : public true_type {};
 
 
 template <class _Rp, class _Fp>
 template <class _Rp, class _Fp>
@@ -2367,7 +2367,7 @@ async(_Fp&& __f, _Args&&... __args)
 // shared_future
 // shared_future
 
 
 template <class _Rp>
 template <class _Rp>
-class _LIBCPP_TYPE_VIS_ONLY shared_future
+class _LIBCPP_TEMPLATE_VIS shared_future
 {
 {
     __assoc_state<_Rp>* __state_;
     __assoc_state<_Rp>* __state_;
 
 
@@ -2441,7 +2441,7 @@ shared_future<_Rp>::operator=(const shared_future& __rhs) _NOEXCEPT
 }
 }
 
 
 template <class _Rp>
 template <class _Rp>
-class _LIBCPP_TYPE_VIS_ONLY shared_future<_Rp&>
+class _LIBCPP_TEMPLATE_VIS shared_future<_Rp&>
 {
 {
     __assoc_state<_Rp&>* __state_;
     __assoc_state<_Rp&>* __state_;
 
 

+ 1 - 1
include/initializer_list

@@ -56,7 +56,7 @@ namespace std  // purposefully not versioned
 #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 
 
 template<class _Ep>
 template<class _Ep>
-class _LIBCPP_TYPE_VIS_ONLY initializer_list
+class _LIBCPP_TEMPLATE_VIS initializer_list
 {
 {
     const _Ep* __begin_;
     const _Ep* __begin_;
     size_t    __size_;
     size_t    __size_;

+ 3 - 3
include/ios

@@ -393,11 +393,11 @@ _LIBCPP_DECLARE_STRONG_ENUM(io_errc)
 _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(io_errc)
 _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(io_errc)
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY is_error_code_enum<io_errc> : public true_type { };
+struct _LIBCPP_TEMPLATE_VIS is_error_code_enum<io_errc> : public true_type { };
 
 
 #ifdef _LIBCPP_HAS_NO_STRONG_ENUMS
 #ifdef _LIBCPP_HAS_NO_STRONG_ENUMS
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY is_error_code_enum<io_errc::__lx> : public true_type { };
+struct _LIBCPP_TEMPLATE_VIS is_error_code_enum<io_errc::__lx> : public true_type { };
 #endif
 #endif
 
 
 _LIBCPP_FUNC_VIS
 _LIBCPP_FUNC_VIS
@@ -573,7 +573,7 @@ ios_base::exceptions(iostate __iostate)
 }
 }
 
 
 template <class _CharT, class _Traits>
 template <class _CharT, class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY basic_ios
+class _LIBCPP_TEMPLATE_VIS basic_ios
     : public ios_base
     : public ios_base
 {
 {
 public:
 public:

+ 20 - 20
include/iosfwd

@@ -97,47 +97,47 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 
 
 class _LIBCPP_TYPE_VIS ios_base;
 class _LIBCPP_TYPE_VIS ios_base;
 
 
-template<class _CharT>  struct _LIBCPP_TYPE_VIS_ONLY char_traits;
-template<class _Tp>     class _LIBCPP_TYPE_VIS_ONLY allocator;
+template<class _CharT>  struct _LIBCPP_TEMPLATE_VIS char_traits;
+template<class _Tp>     class _LIBCPP_TEMPLATE_VIS allocator;
 
 
 template <class _CharT, class _Traits = char_traits<_CharT> >
 template <class _CharT, class _Traits = char_traits<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_ios;
+    class _LIBCPP_TEMPLATE_VIS basic_ios;
 
 
 template <class _CharT, class _Traits = char_traits<_CharT> >
 template <class _CharT, class _Traits = char_traits<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_streambuf;
+    class _LIBCPP_TEMPLATE_VIS basic_streambuf;
 template <class _CharT, class _Traits = char_traits<_CharT> >
 template <class _CharT, class _Traits = char_traits<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_istream;
+    class _LIBCPP_TEMPLATE_VIS basic_istream;
 template <class _CharT, class _Traits = char_traits<_CharT> >
 template <class _CharT, class _Traits = char_traits<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_ostream;
+    class _LIBCPP_TEMPLATE_VIS basic_ostream;
 template <class _CharT, class _Traits = char_traits<_CharT> >
 template <class _CharT, class _Traits = char_traits<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_iostream;
+    class _LIBCPP_TEMPLATE_VIS basic_iostream;
 
 
 template <class _CharT, class _Traits = char_traits<_CharT>,
 template <class _CharT, class _Traits = char_traits<_CharT>,
           class _Allocator = allocator<_CharT> >
           class _Allocator = allocator<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_stringbuf;
+    class _LIBCPP_TEMPLATE_VIS basic_stringbuf;
 template <class _CharT, class _Traits = char_traits<_CharT>,
 template <class _CharT, class _Traits = char_traits<_CharT>,
           class _Allocator = allocator<_CharT> >
           class _Allocator = allocator<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_istringstream;
+    class _LIBCPP_TEMPLATE_VIS basic_istringstream;
 template <class _CharT, class _Traits = char_traits<_CharT>,
 template <class _CharT, class _Traits = char_traits<_CharT>,
           class _Allocator = allocator<_CharT> >
           class _Allocator = allocator<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_ostringstream;
+    class _LIBCPP_TEMPLATE_VIS basic_ostringstream;
 template <class _CharT, class _Traits = char_traits<_CharT>,
 template <class _CharT, class _Traits = char_traits<_CharT>,
           class _Allocator = allocator<_CharT> >
           class _Allocator = allocator<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_stringstream;
+    class _LIBCPP_TEMPLATE_VIS basic_stringstream;
 
 
 template <class _CharT, class _Traits = char_traits<_CharT> >
 template <class _CharT, class _Traits = char_traits<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_filebuf;
+    class _LIBCPP_TEMPLATE_VIS basic_filebuf;
 template <class _CharT, class _Traits = char_traits<_CharT> >
 template <class _CharT, class _Traits = char_traits<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_ifstream;
+    class _LIBCPP_TEMPLATE_VIS basic_ifstream;
 template <class _CharT, class _Traits = char_traits<_CharT> >
 template <class _CharT, class _Traits = char_traits<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_ofstream;
+    class _LIBCPP_TEMPLATE_VIS basic_ofstream;
 template <class _CharT, class _Traits = char_traits<_CharT> >
 template <class _CharT, class _Traits = char_traits<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_fstream;
+    class _LIBCPP_TEMPLATE_VIS basic_fstream;
 
 
 template <class _CharT, class _Traits = char_traits<_CharT> >
 template <class _CharT, class _Traits = char_traits<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY istreambuf_iterator;
+    class _LIBCPP_TEMPLATE_VIS istreambuf_iterator;
 template <class _CharT, class _Traits = char_traits<_CharT> >
 template <class _CharT, class _Traits = char_traits<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY ostreambuf_iterator;
+    class _LIBCPP_TEMPLATE_VIS ostreambuf_iterator;
 
 
 typedef basic_ios<char>              ios;
 typedef basic_ios<char>              ios;
 typedef basic_ios<wchar_t>           wios;
 typedef basic_ios<wchar_t>           wios;
@@ -172,7 +172,7 @@ typedef basic_ifstream<wchar_t>      wifstream;
 typedef basic_ofstream<wchar_t>      wofstream;
 typedef basic_ofstream<wchar_t>      wofstream;
 typedef basic_fstream<wchar_t>       wfstream;
 typedef basic_fstream<wchar_t>       wfstream;
 
 
-template <class _State>             class _LIBCPP_TYPE_VIS_ONLY fpos;
+template <class _State>             class _LIBCPP_TEMPLATE_VIS fpos;
 typedef fpos<mbstate_t>    streampos;
 typedef fpos<mbstate_t>    streampos;
 typedef fpos<mbstate_t>    wstreampos;
 typedef fpos<mbstate_t>    wstreampos;
 #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
 #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
@@ -190,14 +190,14 @@ typedef long long streamoff;        // for char_traits in <string>
 template <class _CharT,             // for <stdexcept>
 template <class _CharT,             // for <stdexcept>
           class _Traits = char_traits<_CharT>,
           class _Traits = char_traits<_CharT>,
           class _Allocator = allocator<_CharT> >
           class _Allocator = allocator<_CharT> >
-    class _LIBCPP_TYPE_VIS_ONLY basic_string;
+    class _LIBCPP_TEMPLATE_VIS basic_string;
 typedef basic_string<char, char_traits<char>, allocator<char> > string;
 typedef basic_string<char, char_traits<char>, allocator<char> > string;
 typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring;
 typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring;
 
 
 
 
 // Include other forward declarations here
 // Include other forward declarations here
 template <class _Tp, class _Alloc = allocator<_Tp> >
 template <class _Tp, class _Alloc = allocator<_Tp> >
-class _LIBCPP_TYPE_VIS_ONLY vector;
+class _LIBCPP_TEMPLATE_VIS vector;
 
 
 _LIBCPP_END_NAMESPACE_STD
 _LIBCPP_END_NAMESPACE_STD
 
 

+ 4 - 4
include/istream

@@ -171,7 +171,7 @@ template <class charT, class traits, class T>
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
 template <class _CharT, class _Traits>
 template <class _CharT, class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY basic_istream
+class _LIBCPP_TEMPLATE_VIS basic_istream
     : virtual public basic_ios<_CharT, _Traits>
     : virtual public basic_ios<_CharT, _Traits>
 {
 {
     streamsize __gc_;
     streamsize __gc_;
@@ -217,7 +217,7 @@ protected:
 public:
 public:
 
 
     // 27.7.1.1.3 Prefix/suffix:
     // 27.7.1.1.3 Prefix/suffix:
-    class _LIBCPP_TYPE_VIS_ONLY sentry;
+    class _LIBCPP_TEMPLATE_VIS sentry;
 
 
     // 27.7.1.2 Formatted input:
     // 27.7.1.2 Formatted input:
     inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY
     inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY
@@ -294,7 +294,7 @@ public:
 };
 };
 
 
 template <class _CharT, class _Traits>
 template <class _CharT, class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY basic_istream<_CharT, _Traits>::sentry
+class _LIBCPP_TEMPLATE_VIS basic_istream<_CharT, _Traits>::sentry
 {
 {
     bool __ok_;
     bool __ok_;
 
 
@@ -1443,7 +1443,7 @@ operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp&& __x)
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
 template <class _CharT, class _Traits>
 template <class _CharT, class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY basic_iostream
+class _LIBCPP_TEMPLATE_VIS basic_iostream
     : public basic_istream<_CharT, _Traits>,
     : public basic_istream<_CharT, _Traits>,
       public basic_ostream<_CharT, _Traits>
       public basic_ostream<_CharT, _Traits>
 {
 {

+ 18 - 18
include/iterator

@@ -431,11 +431,11 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
 
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
-struct _LIBCPP_TYPE_VIS_ONLY input_iterator_tag {};
-struct _LIBCPP_TYPE_VIS_ONLY output_iterator_tag {};
-struct _LIBCPP_TYPE_VIS_ONLY forward_iterator_tag       : public input_iterator_tag {};
-struct _LIBCPP_TYPE_VIS_ONLY bidirectional_iterator_tag : public forward_iterator_tag {};
-struct _LIBCPP_TYPE_VIS_ONLY random_access_iterator_tag : public bidirectional_iterator_tag {};
+struct _LIBCPP_TEMPLATE_VIS input_iterator_tag {};
+struct _LIBCPP_TEMPLATE_VIS output_iterator_tag {};
+struct _LIBCPP_TEMPLATE_VIS forward_iterator_tag       : public input_iterator_tag {};
+struct _LIBCPP_TEMPLATE_VIS bidirectional_iterator_tag : public forward_iterator_tag {};
+struct _LIBCPP_TEMPLATE_VIS random_access_iterator_tag : public bidirectional_iterator_tag {};
 
 
 template <class _Tp>
 template <class _Tp>
 struct __has_iterator_category
 struct __has_iterator_category
@@ -478,11 +478,11 @@ struct __iterator_traits<_Iter, true>
 //    the client expects instead of failing at compile time.
 //    the client expects instead of failing at compile time.
 
 
 template <class _Iter>
 template <class _Iter>
-struct _LIBCPP_TYPE_VIS_ONLY iterator_traits
+struct _LIBCPP_TEMPLATE_VIS iterator_traits
     : __iterator_traits<_Iter, __has_iterator_category<_Iter>::value> {};
     : __iterator_traits<_Iter, __has_iterator_category<_Iter>::value> {};
 
 
 template<class _Tp>
 template<class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY iterator_traits<_Tp*>
+struct _LIBCPP_TEMPLATE_VIS iterator_traits<_Tp*>
 {
 {
     typedef ptrdiff_t difference_type;
     typedef ptrdiff_t difference_type;
     typedef typename remove_const<_Tp>::type value_type;
     typedef typename remove_const<_Tp>::type value_type;
@@ -519,7 +519,7 @@ struct __is_exactly_input_iterator
 
 
 template<class _Category, class _Tp, class _Distance = ptrdiff_t,
 template<class _Category, class _Tp, class _Distance = ptrdiff_t,
          class _Pointer = _Tp*, class _Reference = _Tp&>
          class _Pointer = _Tp*, class _Reference = _Tp&>
-struct _LIBCPP_TYPE_VIS_ONLY iterator
+struct _LIBCPP_TEMPLATE_VIS iterator
 {
 {
     typedef _Tp        value_type;
     typedef _Tp        value_type;
     typedef _Distance  difference_type;
     typedef _Distance  difference_type;
@@ -616,7 +616,7 @@ prev(_BidiretionalIter __x,
 }
 }
 
 
 template <class _Iter>
 template <class _Iter>
-class _LIBCPP_TYPE_VIS_ONLY reverse_iterator
+class _LIBCPP_TEMPLATE_VIS reverse_iterator
     : public iterator<typename iterator_traits<_Iter>::iterator_category,
     : public iterator<typename iterator_traits<_Iter>::iterator_category,
                       typename iterator_traits<_Iter>::value_type,
                       typename iterator_traits<_Iter>::value_type,
                       typename iterator_traits<_Iter>::difference_type,
                       typename iterator_traits<_Iter>::difference_type,
@@ -755,7 +755,7 @@ reverse_iterator<_Iter> make_reverse_iterator(_Iter __i)
 #endif
 #endif
 
 
 template <class _Container>
 template <class _Container>
-class _LIBCPP_TYPE_VIS_ONLY back_insert_iterator
+class _LIBCPP_TEMPLATE_VIS back_insert_iterator
     : public iterator<output_iterator_tag,
     : public iterator<output_iterator_tag,
                       void,
                       void,
                       void,
                       void,
@@ -788,7 +788,7 @@ back_inserter(_Container& __x)
 }
 }
 
 
 template <class _Container>
 template <class _Container>
-class _LIBCPP_TYPE_VIS_ONLY front_insert_iterator
+class _LIBCPP_TEMPLATE_VIS front_insert_iterator
     : public iterator<output_iterator_tag,
     : public iterator<output_iterator_tag,
                       void,
                       void,
                       void,
                       void,
@@ -821,7 +821,7 @@ front_inserter(_Container& __x)
 }
 }
 
 
 template <class _Container>
 template <class _Container>
-class _LIBCPP_TYPE_VIS_ONLY insert_iterator
+class _LIBCPP_TEMPLATE_VIS insert_iterator
     : public iterator<output_iterator_tag,
     : public iterator<output_iterator_tag,
                       void,
                       void,
                       void,
                       void,
@@ -857,7 +857,7 @@ inserter(_Container& __x, typename _Container::iterator __i)
 
 
 template <class _Tp, class _CharT = char,
 template <class _Tp, class _CharT = char,
           class _Traits = char_traits<_CharT>, class _Distance = ptrdiff_t>
           class _Traits = char_traits<_CharT>, class _Distance = ptrdiff_t>
-class _LIBCPP_TYPE_VIS_ONLY istream_iterator
+class _LIBCPP_TEMPLATE_VIS istream_iterator
     : public iterator<input_iterator_tag, _Tp, _Distance, const _Tp*, const _Tp&>
     : public iterator<input_iterator_tag, _Tp, _Distance, const _Tp*, const _Tp&>
 {
 {
 public:
 public:
@@ -896,7 +896,7 @@ public:
 };
 };
 
 
 template <class _Tp, class _CharT = char, class _Traits = char_traits<_CharT> >
 template <class _Tp, class _CharT = char, class _Traits = char_traits<_CharT> >
-class _LIBCPP_TYPE_VIS_ONLY ostream_iterator
+class _LIBCPP_TEMPLATE_VIS ostream_iterator
     : public iterator<output_iterator_tag, void, void, void, void>
     : public iterator<output_iterator_tag, void, void, void, void>
 {
 {
 public:
 public:
@@ -925,7 +925,7 @@ public:
 };
 };
 
 
 template<class _CharT, class _Traits>
 template<class _CharT, class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY istreambuf_iterator
+class _LIBCPP_TEMPLATE_VIS istreambuf_iterator
     : public iterator<input_iterator_tag, _CharT,
     : public iterator<input_iterator_tag, _CharT,
                       typename _Traits::off_type, _CharT*,
                       typename _Traits::off_type, _CharT*,
                       _CharT>
                       _CharT>
@@ -996,7 +996,7 @@ bool operator!=(const istreambuf_iterator<_CharT,_Traits>& __a,
                 {return !__a.equal(__b);}
                 {return !__a.equal(__b);}
 
 
 template <class _CharT, class _Traits>
 template <class _CharT, class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY ostreambuf_iterator
+class _LIBCPP_TEMPLATE_VIS ostreambuf_iterator
     : public iterator<output_iterator_tag, void, void, void, void>
     : public iterator<output_iterator_tag, void, void, void, void>
 {
 {
 public:
 public:
@@ -1037,7 +1037,7 @@ public:
 };
 };
 
 
 template <class _Iter>
 template <class _Iter>
-class _LIBCPP_TYPE_VIS_ONLY move_iterator
+class _LIBCPP_TEMPLATE_VIS move_iterator
 {
 {
 private:
 private:
     _Iter __i;
     _Iter __i;
@@ -1383,7 +1383,7 @@ private:
 
 
     template <class _Up> friend class __wrap_iter;
     template <class _Up> friend class __wrap_iter;
     template <class _CharT, class _Traits, class _Alloc> friend class basic_string;
     template <class _CharT, class _Traits, class _Alloc> friend class basic_string;
-    template <class _Tp, class _Alloc> friend class _LIBCPP_TYPE_VIS_ONLY vector;
+    template <class _Tp, class _Alloc> friend class _LIBCPP_TEMPLATE_VIS vector;
 
 
     template <class _Iter1, class _Iter2>
     template <class _Iter1, class _Iter2>
     friend
     friend

+ 4 - 4
include/limits

@@ -438,7 +438,7 @@ protected:
 };
 };
 
 
 template <class _Tp>
 template <class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY numeric_limits
+class _LIBCPP_TEMPLATE_VIS numeric_limits
     : private __libcpp_numeric_limits<typename remove_cv<_Tp>::type>
     : private __libcpp_numeric_limits<typename remove_cv<_Tp>::type>
 {
 {
     typedef __libcpp_numeric_limits<typename remove_cv<_Tp>::type> __base;
     typedef __libcpp_numeric_limits<typename remove_cv<_Tp>::type> __base;
@@ -531,7 +531,7 @@ template <class _Tp>
     _LIBCPP_CONSTEXPR const float_round_style numeric_limits<_Tp>::round_style;
     _LIBCPP_CONSTEXPR const float_round_style numeric_limits<_Tp>::round_style;
 
 
 template <class _Tp>
 template <class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY numeric_limits<const _Tp>
+class _LIBCPP_TEMPLATE_VIS numeric_limits<const _Tp>
     : private numeric_limits<_Tp>
     : private numeric_limits<_Tp>
 {
 {
     typedef numeric_limits<_Tp> __base;
     typedef numeric_limits<_Tp> __base;
@@ -624,7 +624,7 @@ template <class _Tp>
     _LIBCPP_CONSTEXPR const float_round_style numeric_limits<const _Tp>::round_style;
     _LIBCPP_CONSTEXPR const float_round_style numeric_limits<const _Tp>::round_style;
 
 
 template <class _Tp>
 template <class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY numeric_limits<volatile _Tp>
+class _LIBCPP_TEMPLATE_VIS numeric_limits<volatile _Tp>
     : private numeric_limits<_Tp>
     : private numeric_limits<_Tp>
 {
 {
     typedef numeric_limits<_Tp> __base;
     typedef numeric_limits<_Tp> __base;
@@ -717,7 +717,7 @@ template <class _Tp>
     _LIBCPP_CONSTEXPR const float_round_style numeric_limits<volatile _Tp>::round_style;
     _LIBCPP_CONSTEXPR const float_round_style numeric_limits<volatile _Tp>::round_style;
 
 
 template <class _Tp>
 template <class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY numeric_limits<const volatile _Tp>
+class _LIBCPP_TEMPLATE_VIS numeric_limits<const volatile _Tp>
     : private numeric_limits<_Tp>
     : private numeric_limits<_Tp>
 {
 {
     typedef numeric_limits<_Tp> __base;
     typedef numeric_limits<_Tp> __base;

+ 5 - 5
include/list

@@ -266,12 +266,12 @@ struct __list_node
     }
     }
 };
 };
 
 
-template <class _Tp, class _Alloc = allocator<_Tp> > class _LIBCPP_TYPE_VIS_ONLY list;
+template <class _Tp, class _Alloc = allocator<_Tp> > class _LIBCPP_TEMPLATE_VIS list;
 template <class _Tp, class _Alloc> class __list_imp;
 template <class _Tp, class _Alloc> class __list_imp;
-template <class _Tp, class _VoidPtr> class _LIBCPP_TYPE_VIS_ONLY __list_const_iterator;
+template <class _Tp, class _VoidPtr> class _LIBCPP_TEMPLATE_VIS __list_const_iterator;
 
 
 template <class _Tp, class _VoidPtr>
 template <class _Tp, class _VoidPtr>
-class _LIBCPP_TYPE_VIS_ONLY __list_iterator
+class _LIBCPP_TEMPLATE_VIS __list_iterator
 {
 {
     typedef __list_node_pointer_traits<_Tp, _VoidPtr> _NodeTraits;
     typedef __list_node_pointer_traits<_Tp, _VoidPtr> _NodeTraits;
     typedef typename _NodeTraits::__link_pointer __link_pointer;
     typedef typename _NodeTraits::__link_pointer __link_pointer;
@@ -394,7 +394,7 @@ public:
 };
 };
 
 
 template <class _Tp, class _VoidPtr>
 template <class _Tp, class _VoidPtr>
-class _LIBCPP_TYPE_VIS_ONLY __list_const_iterator
+class _LIBCPP_TEMPLATE_VIS __list_const_iterator
 {
 {
     typedef __list_node_pointer_traits<_Tp, _VoidPtr> _NodeTraits;
     typedef __list_node_pointer_traits<_Tp, _VoidPtr> _NodeTraits;
     typedef typename _NodeTraits::__link_pointer __link_pointer;
     typedef typename _NodeTraits::__link_pointer __link_pointer;
@@ -800,7 +800,7 @@ __list_imp<_Tp, _Alloc>::swap(__list_imp& __c)
 }
 }
 
 
 template <class _Tp, class _Alloc /*= allocator<_Tp>*/>
 template <class _Tp, class _Alloc /*= allocator<_Tp>*/>
-class _LIBCPP_TYPE_VIS_ONLY list
+class _LIBCPP_TEMPLATE_VIS list
     : private __list_imp<_Tp, _Alloc>
     : private __list_imp<_Tp, _Alloc>
 {
 {
     typedef __list_imp<_Tp, _Alloc> base;
     typedef __list_imp<_Tp, _Alloc> base;

+ 16 - 16
include/locale

@@ -527,7 +527,7 @@ _LIBCPP_EXTERN_TEMPLATE2(struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_get<char>
 _LIBCPP_EXTERN_TEMPLATE2(struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_get<wchar_t>)
 _LIBCPP_EXTERN_TEMPLATE2(struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_get<wchar_t>)
 
 
 template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >
 template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >
-class _LIBCPP_TYPE_VIS_ONLY num_get
+class _LIBCPP_TEMPLATE_VIS num_get
     : public locale::facet,
     : public locale::facet,
       private __num_get<_CharT>
       private __num_get<_CharT>
 {
 {
@@ -1197,7 +1197,7 @@ _LIBCPP_EXTERN_TEMPLATE2(struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_put<char>
 _LIBCPP_EXTERN_TEMPLATE2(struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_put<wchar_t>)
 _LIBCPP_EXTERN_TEMPLATE2(struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_put<wchar_t>)
 
 
 template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> >
 template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> >
-class _LIBCPP_TYPE_VIS_ONLY num_put
+class _LIBCPP_TEMPLATE_VIS num_put
     : public locale::facet,
     : public locale::facet,
       private __num_put<_CharT>
       private __num_put<_CharT>
 {
 {
@@ -1665,7 +1665,7 @@ public:
 };
 };
 
 
 template <class _CharT>
 template <class _CharT>
-class _LIBCPP_TYPE_VIS_ONLY __time_get_c_storage
+class _LIBCPP_TEMPLATE_VIS __time_get_c_storage
 {
 {
 protected:
 protected:
     typedef basic_string<_CharT> string_type;
     typedef basic_string<_CharT> string_type;
@@ -1683,7 +1683,7 @@ protected:
 };
 };
 
 
 template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >
 template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >
-class _LIBCPP_TYPE_VIS_ONLY time_get
+class _LIBCPP_TEMPLATE_VIS time_get
     : public locale::facet,
     : public locale::facet,
       public time_base,
       public time_base,
       private __time_get_c_storage<_CharT>
       private __time_get_c_storage<_CharT>
@@ -2306,7 +2306,7 @@ protected:
 };
 };
 
 
 template <class _CharT>
 template <class _CharT>
-class _LIBCPP_TYPE_VIS_ONLY __time_get_storage
+class _LIBCPP_TEMPLATE_VIS __time_get_storage
     : public __time_get
     : public __time_get
 {
 {
 protected:
 protected:
@@ -2333,7 +2333,7 @@ private:
 };
 };
 
 
 template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >
 template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >
-class _LIBCPP_TYPE_VIS_ONLY time_get_byname
+class _LIBCPP_TEMPLATE_VIS time_get_byname
     : public time_get<_CharT, _InputIterator>,
     : public time_get<_CharT, _InputIterator>,
       private __time_get_storage<_CharT>
       private __time_get_storage<_CharT>
 {
 {
@@ -2393,7 +2393,7 @@ protected:
 };
 };
 
 
 template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> >
 template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> >
-class _LIBCPP_TYPE_VIS_ONLY time_put
+class _LIBCPP_TEMPLATE_VIS time_put
     : public locale::facet,
     : public locale::facet,
       private __time_put
       private __time_put
 {
 {
@@ -2492,7 +2492,7 @@ _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put<char>)
 _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put<wchar_t>)
 _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put<wchar_t>)
 
 
 template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> >
 template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> >
-class _LIBCPP_TYPE_VIS_ONLY time_put_byname
+class _LIBCPP_TEMPLATE_VIS time_put_byname
     : public time_put<_CharT, _OutputIterator>
     : public time_put<_CharT, _OutputIterator>
 {
 {
 public:
 public:
@@ -2526,7 +2526,7 @@ public:
 // moneypunct
 // moneypunct
 
 
 template <class _CharT, bool _International = false>
 template <class _CharT, bool _International = false>
-class _LIBCPP_TYPE_VIS_ONLY moneypunct
+class _LIBCPP_TEMPLATE_VIS moneypunct
     : public locale::facet,
     : public locale::facet,
       public money_base
       public money_base
 {
 {
@@ -2584,7 +2584,7 @@ _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct<wchar
 // moneypunct_byname
 // moneypunct_byname
 
 
 template <class _CharT, bool _International = false>
 template <class _CharT, bool _International = false>
-class _LIBCPP_TYPE_VIS_ONLY moneypunct_byname
+class _LIBCPP_TEMPLATE_VIS moneypunct_byname
     : public moneypunct<_CharT, _International>
     : public moneypunct<_CharT, _International>
 {
 {
 public:
 public:
@@ -2696,7 +2696,7 @@ _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_get<char
 _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_get<wchar_t>)
 _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_get<wchar_t>)
 
 
 template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >
 template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >
-class _LIBCPP_TYPE_VIS_ONLY money_get
+class _LIBCPP_TEMPLATE_VIS money_get
     : public locale::facet,
     : public locale::facet,
       private __money_get<_CharT>
       private __money_get<_CharT>
 {
 {
@@ -3254,7 +3254,7 @@ _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_put<char
 _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_put<wchar_t>)
 _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_put<wchar_t>)
 
 
 template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> >
 template <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> >
-class _LIBCPP_TYPE_VIS_ONLY money_put
+class _LIBCPP_TEMPLATE_VIS money_put
     : public locale::facet,
     : public locale::facet,
       private __money_put<_CharT>
       private __money_put<_CharT>
 {
 {
@@ -3417,7 +3417,7 @@ public:
 };
 };
 
 
 template <class _CharT>
 template <class _CharT>
-class _LIBCPP_TYPE_VIS_ONLY messages
+class _LIBCPP_TEMPLATE_VIS messages
     : public locale::facet,
     : public locale::facet,
       public messages_base
       public messages_base
 {
 {
@@ -3517,7 +3517,7 @@ _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages<char>)
 _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages<wchar_t>)
 _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages<wchar_t>)
 
 
 template <class _CharT>
 template <class _CharT>
-class _LIBCPP_TYPE_VIS_ONLY messages_byname
+class _LIBCPP_TEMPLATE_VIS messages_byname
     : public messages<_CharT>
     : public messages<_CharT>
 {
 {
 public:
 public:
@@ -3543,7 +3543,7 @@ _LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages_byname<
 template<class _Codecvt, class _Elem = wchar_t,
 template<class _Codecvt, class _Elem = wchar_t,
          class _Wide_alloc = allocator<_Elem>,
          class _Wide_alloc = allocator<_Elem>,
          class _Byte_alloc = allocator<char> >
          class _Byte_alloc = allocator<char> >
-class _LIBCPP_TYPE_VIS_ONLY wstring_convert
+class _LIBCPP_TEMPLATE_VIS wstring_convert
 {
 {
 public:
 public:
     typedef basic_string<char, char_traits<char>, _Byte_alloc>   byte_string;
     typedef basic_string<char, char_traits<char>, _Byte_alloc>   byte_string;
@@ -3799,7 +3799,7 @@ wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::
 }
 }
 
 
 template <class _Codecvt, class _Elem = wchar_t, class _Tr = char_traits<_Elem> >
 template <class _Codecvt, class _Elem = wchar_t, class _Tr = char_traits<_Elem> >
-class _LIBCPP_TYPE_VIS_ONLY wbuffer_convert
+class _LIBCPP_TEMPLATE_VIS wbuffer_convert
     : public basic_streambuf<_Elem, _Tr>
     : public basic_streambuf<_Elem, _Tr>
 {
 {
 public:
 public:

+ 12 - 12
include/map

@@ -682,7 +682,7 @@ struct __extract_key_value_types<__value_type<_Key, _Tp> >
 };
 };
 
 
 template <class _TreeIterator>
 template <class _TreeIterator>
-class _LIBCPP_TYPE_VIS_ONLY __map_iterator
+class _LIBCPP_TEMPLATE_VIS __map_iterator
 {
 {
     typedef typename _TreeIterator::_NodeTypes                   _NodeTypes;
     typedef typename _TreeIterator::_NodeTypes                   _NodeTypes;
     typedef typename _TreeIterator::__pointer_traits             __pointer_traits;
     typedef typename _TreeIterator::__pointer_traits             __pointer_traits;
@@ -735,13 +735,13 @@ public:
     bool operator!=(const __map_iterator& __x, const __map_iterator& __y)
     bool operator!=(const __map_iterator& __x, const __map_iterator& __y)
         {return __x.__i_ != __y.__i_;}
         {return __x.__i_ != __y.__i_;}
 
 
-    template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY map;
-    template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY multimap;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __map_const_iterator;
+    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS map;
+    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS multimap;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __map_const_iterator;
 };
 };
 
 
 template <class _TreeIterator>
 template <class _TreeIterator>
-class _LIBCPP_TYPE_VIS_ONLY __map_const_iterator
+class _LIBCPP_TEMPLATE_VIS __map_const_iterator
 {
 {
     typedef typename _TreeIterator::_NodeTypes                   _NodeTypes;
     typedef typename _TreeIterator::_NodeTypes                   _NodeTypes;
     typedef typename _TreeIterator::__pointer_traits             __pointer_traits;
     typedef typename _TreeIterator::__pointer_traits             __pointer_traits;
@@ -797,14 +797,14 @@ public:
     bool operator!=(const __map_const_iterator& __x, const __map_const_iterator& __y)
     bool operator!=(const __map_const_iterator& __x, const __map_const_iterator& __y)
         {return __x.__i_ != __y.__i_;}
         {return __x.__i_ != __y.__i_;}
 
 
-    template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY map;
-    template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY multimap;
-    template <class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY __tree_const_iterator;
+    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS map;
+    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS multimap;
+    template <class, class, class> friend class _LIBCPP_TEMPLATE_VIS __tree_const_iterator;
 };
 };
 
 
 template <class _Key, class _Tp, class _Compare = less<_Key>,
 template <class _Key, class _Tp, class _Compare = less<_Key>,
           class _Allocator = allocator<pair<const _Key, _Tp> > >
           class _Allocator = allocator<pair<const _Key, _Tp> > >
-class _LIBCPP_TYPE_VIS_ONLY map
+class _LIBCPP_TEMPLATE_VIS map
 {
 {
 public:
 public:
     // types:
     // types:
@@ -820,7 +820,7 @@ public:
     static_assert((is_same<typename allocator_type::value_type, value_type>::value),
     static_assert((is_same<typename allocator_type::value_type, value_type>::value),
                   "Allocator::value_type must be same type as value_type");
                   "Allocator::value_type must be same type as value_type");
 
 
-    class _LIBCPP_TYPE_VIS_ONLY value_compare
+    class _LIBCPP_TEMPLATE_VIS value_compare
         : public binary_function<value_type, value_type, bool>
         : public binary_function<value_type, value_type, bool>
     {
     {
         friend class map;
         friend class map;
@@ -1529,7 +1529,7 @@ swap(map<_Key, _Tp, _Compare, _Allocator>& __x,
 
 
 template <class _Key, class _Tp, class _Compare = less<_Key>,
 template <class _Key, class _Tp, class _Compare = less<_Key>,
           class _Allocator = allocator<pair<const _Key, _Tp> > >
           class _Allocator = allocator<pair<const _Key, _Tp> > >
-class _LIBCPP_TYPE_VIS_ONLY multimap
+class _LIBCPP_TEMPLATE_VIS multimap
 {
 {
 public:
 public:
     // types:
     // types:
@@ -1545,7 +1545,7 @@ public:
     static_assert((is_same<typename allocator_type::value_type, value_type>::value),
     static_assert((is_same<typename allocator_type::value_type, value_type>::value),
                   "Allocator::value_type must be same type as value_type");
                   "Allocator::value_type must be same type as value_type");
 
 
-    class _LIBCPP_TYPE_VIS_ONLY value_compare
+    class _LIBCPP_TEMPLATE_VIS value_compare
         : public binary_function<value_type, value_type, bool>
         : public binary_function<value_type, value_type, bool>
     {
     {
         friend class multimap;
         friend class multimap;

+ 29 - 29
include/memory

@@ -681,7 +681,7 @@ _ValueType __libcpp_acquire_load(_ValueType const* __value) {
 template <class _Tp> class allocator;
 template <class _Tp> class allocator;
 
 
 template <>
 template <>
-class _LIBCPP_TYPE_VIS_ONLY allocator<void>
+class _LIBCPP_TEMPLATE_VIS allocator<void>
 {
 {
 public:
 public:
     typedef void*             pointer;
     typedef void*             pointer;
@@ -692,7 +692,7 @@ public:
 };
 };
 
 
 template <>
 template <>
-class _LIBCPP_TYPE_VIS_ONLY allocator<const void>
+class _LIBCPP_TEMPLATE_VIS allocator<const void>
 {
 {
 public:
 public:
     typedef const void*       pointer;
     typedef const void*       pointer;
@@ -927,7 +927,7 @@ struct __pointer_traits_rebind<_Sp<_Tp, _A0, _A1, _A2>, _Up, false>
 #endif  // _LIBCPP_HAS_NO_VARIADICS
 #endif  // _LIBCPP_HAS_NO_VARIADICS
 
 
 template <class _Ptr>
 template <class _Ptr>
-struct _LIBCPP_TYPE_VIS_ONLY pointer_traits
+struct _LIBCPP_TEMPLATE_VIS pointer_traits
 {
 {
     typedef _Ptr                                                     pointer;
     typedef _Ptr                                                     pointer;
     typedef typename __pointer_traits_element_type<pointer>::type    element_type;
     typedef typename __pointer_traits_element_type<pointer>::type    element_type;
@@ -950,7 +950,7 @@ public:
 };
 };
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY pointer_traits<_Tp*>
+struct _LIBCPP_TEMPLATE_VIS pointer_traits<_Tp*>
 {
 {
     typedef _Tp*      pointer;
     typedef _Tp*      pointer;
     typedef _Tp       element_type;
     typedef _Tp       element_type;
@@ -1489,7 +1489,7 @@ struct __alloc_traits_difference_type<_Alloc, _Ptr, true>
 };
 };
 
 
 template <class _Alloc>
 template <class _Alloc>
-struct _LIBCPP_TYPE_VIS_ONLY allocator_traits
+struct _LIBCPP_TEMPLATE_VIS allocator_traits
 {
 {
     typedef _Alloc                              allocator_type;
     typedef _Alloc                              allocator_type;
     typedef typename allocator_type::value_type value_type;
     typedef typename allocator_type::value_type value_type;
@@ -1742,7 +1742,7 @@ struct __rebind_alloc_helper
 // allocator
 // allocator
 
 
 template <class _Tp>
 template <class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY allocator
+class _LIBCPP_TEMPLATE_VIS allocator
 {
 {
 public:
 public:
     typedef size_t            size_type;
     typedef size_t            size_type;
@@ -1840,7 +1840,7 @@ public:
 };
 };
 
 
 template <class _Tp>
 template <class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY allocator<const _Tp>
+class _LIBCPP_TEMPLATE_VIS allocator<const _Tp>
 {
 {
 public:
 public:
     typedef size_t            size_type;
     typedef size_t            size_type;
@@ -1944,7 +1944,7 @@ inline _LIBCPP_INLINE_VISIBILITY
 bool operator!=(const allocator<_Tp>&, const allocator<_Up>&) _NOEXCEPT {return false;}
 bool operator!=(const allocator<_Tp>&, const allocator<_Up>&) _NOEXCEPT {return false;}
 
 
 template <class _OutputIterator, class _Tp>
 template <class _OutputIterator, class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY raw_storage_iterator
+class _LIBCPP_TEMPLATE_VIS raw_storage_iterator
     : public iterator<output_iterator_tag,
     : public iterator<output_iterator_tag,
                       _Tp,                                         // purposefully not C++03
                       _Tp,                                         // purposefully not C++03
                       ptrdiff_t,                                   // purposefully not C++03
                       ptrdiff_t,                                   // purposefully not C++03
@@ -2004,7 +2004,7 @@ struct auto_ptr_ref
 };
 };
 
 
 template<class _Tp>
 template<class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY auto_ptr
+class _LIBCPP_TEMPLATE_VIS auto_ptr
 {
 {
 private:
 private:
     _Tp* __ptr_;
     _Tp* __ptr_;
@@ -2048,7 +2048,7 @@ public:
 };
 };
 
 
 template <>
 template <>
-class _LIBCPP_TYPE_VIS_ONLY auto_ptr<void>
+class _LIBCPP_TEMPLATE_VIS auto_ptr<void>
 {
 {
 public:
 public:
     typedef void element_type;
     typedef void element_type;
@@ -2381,7 +2381,7 @@ struct __same_or_less_cv_qualified<_Ptr1, _Ptr2, false>
 // default_delete
 // default_delete
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY default_delete
+struct _LIBCPP_TEMPLATE_VIS default_delete
 {
 {
 #ifndef _LIBCPP_CXX03_LANG
 #ifndef _LIBCPP_CXX03_LANG
     _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT = default;
     _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR default_delete() _NOEXCEPT = default;
@@ -2400,7 +2400,7 @@ struct _LIBCPP_TYPE_VIS_ONLY default_delete
 };
 };
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY default_delete<_Tp[]>
+struct _LIBCPP_TEMPLATE_VIS default_delete<_Tp[]>
 {
 {
 public:
 public:
 #ifndef _LIBCPP_CXX03_LANG
 #ifndef _LIBCPP_CXX03_LANG
@@ -2423,7 +2423,7 @@ public:
 };
 };
 
 
 template <class _Tp, class _Dp = default_delete<_Tp> >
 template <class _Tp, class _Dp = default_delete<_Tp> >
-class _LIBCPP_TYPE_VIS_ONLY unique_ptr
+class _LIBCPP_TEMPLATE_VIS unique_ptr
 {
 {
 public:
 public:
     typedef _Tp element_type;
     typedef _Tp element_type;
@@ -2609,7 +2609,7 @@ public:
 };
 };
 
 
 template <class _Tp, class _Dp>
 template <class _Tp, class _Dp>
-class _LIBCPP_TYPE_VIS_ONLY unique_ptr<_Tp[], _Dp>
+class _LIBCPP_TEMPLATE_VIS unique_ptr<_Tp[], _Dp>
 {
 {
 public:
 public:
     typedef _Tp element_type;
     typedef _Tp element_type;
@@ -3357,7 +3357,7 @@ inline size_t __hash_combine(size_t __lhs, size_t __rhs) _NOEXCEPT {
 }
 }
 
 
 template<class _Tp>
 template<class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY hash<_Tp*>
+struct _LIBCPP_TEMPLATE_VIS hash<_Tp*>
     : public unary_function<_Tp*, size_t>
     : public unary_function<_Tp*, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -3374,7 +3374,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<_Tp*>
 };
 };
 
 
 template <class _Tp, class _Dp>
 template <class _Tp, class _Dp>
-struct _LIBCPP_TYPE_VIS_ONLY hash<unique_ptr<_Tp, _Dp> >
+struct _LIBCPP_TEMPLATE_VIS hash<unique_ptr<_Tp, _Dp> >
 {
 {
     typedef unique_ptr<_Tp, _Dp> argument_type;
     typedef unique_ptr<_Tp, _Dp> argument_type;
     typedef size_t               result_type;
     typedef size_t               result_type;
@@ -3699,7 +3699,7 @@ void __throw_bad_weak_ptr()
 #endif
 #endif
 }
 }
 
 
-template<class _Tp> class _LIBCPP_TYPE_VIS_ONLY weak_ptr;
+template<class _Tp> class _LIBCPP_TEMPLATE_VIS weak_ptr;
 
 
 class _LIBCPP_TYPE_VIS __shared_count
 class _LIBCPP_TYPE_VIS __shared_count
 {
 {
@@ -3877,10 +3877,10 @@ __shared_ptr_emplace<_Tp, _Alloc>::__on_zero_shared_weak() _NOEXCEPT
     __a.deallocate(_PTraits::pointer_to(*this), 1);
     __a.deallocate(_PTraits::pointer_to(*this), 1);
 }
 }
 
 
-template<class _Tp> class _LIBCPP_TYPE_VIS_ONLY enable_shared_from_this;
+template<class _Tp> class _LIBCPP_TEMPLATE_VIS enable_shared_from_this;
 
 
 template<class _Tp>
 template<class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY shared_ptr
+class _LIBCPP_TEMPLATE_VIS shared_ptr
 {
 {
 public:
 public:
     typedef _Tp element_type;
     typedef _Tp element_type;
@@ -4156,8 +4156,8 @@ private:
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
     void __enable_weak_this(const volatile void*, const volatile void*) _NOEXCEPT {}
     void __enable_weak_this(const volatile void*, const volatile void*) _NOEXCEPT {}
 
 
-    template <class _Up> friend class _LIBCPP_TYPE_VIS_ONLY shared_ptr;
-    template <class _Up> friend class _LIBCPP_TYPE_VIS_ONLY weak_ptr;
+    template <class _Up> friend class _LIBCPP_TEMPLATE_VIS shared_ptr;
+    template <class _Up> friend class _LIBCPP_TEMPLATE_VIS weak_ptr;
 };
 };
 
 
 template<class _Tp>
 template<class _Tp>
@@ -5090,7 +5090,7 @@ get_deleter(const shared_ptr<_Tp>& __p) _NOEXCEPT
 #endif  // _LIBCPP_NO_RTTI
 #endif  // _LIBCPP_NO_RTTI
 
 
 template<class _Tp>
 template<class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY weak_ptr
+class _LIBCPP_TEMPLATE_VIS weak_ptr
 {
 {
 public:
 public:
     typedef _Tp element_type;
     typedef _Tp element_type;
@@ -5175,8 +5175,8 @@ public:
         bool owner_before(const weak_ptr<_Up>& __r) const
         bool owner_before(const weak_ptr<_Up>& __r) const
         {return __cntrl_ < __r.__cntrl_;}
         {return __cntrl_ < __r.__cntrl_;}
 
 
-    template <class _Up> friend class _LIBCPP_TYPE_VIS_ONLY weak_ptr;
-    template <class _Up> friend class _LIBCPP_TYPE_VIS_ONLY shared_ptr;
+    template <class _Up> friend class _LIBCPP_TEMPLATE_VIS weak_ptr;
+    template <class _Up> friend class _LIBCPP_TEMPLATE_VIS shared_ptr;
 };
 };
 
 
 template<class _Tp>
 template<class _Tp>
@@ -5376,7 +5376,7 @@ template <class _Tp> struct owner_less;
 #endif
 #endif
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY owner_less<shared_ptr<_Tp> >
+struct _LIBCPP_TEMPLATE_VIS owner_less<shared_ptr<_Tp> >
     : binary_function<shared_ptr<_Tp>, shared_ptr<_Tp>, bool>
     : binary_function<shared_ptr<_Tp>, shared_ptr<_Tp>, bool>
 {
 {
     typedef bool result_type;
     typedef bool result_type;
@@ -5392,7 +5392,7 @@ struct _LIBCPP_TYPE_VIS_ONLY owner_less<shared_ptr<_Tp> >
 };
 };
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY owner_less<weak_ptr<_Tp> >
+struct _LIBCPP_TEMPLATE_VIS owner_less<weak_ptr<_Tp> >
     : binary_function<weak_ptr<_Tp>, weak_ptr<_Tp>, bool>
     : binary_function<weak_ptr<_Tp>, weak_ptr<_Tp>, bool>
 {
 {
     typedef bool result_type;
     typedef bool result_type;
@@ -5409,7 +5409,7 @@ struct _LIBCPP_TYPE_VIS_ONLY owner_less<weak_ptr<_Tp> >
 
 
 #if _LIBCPP_STD_VER > 14
 #if _LIBCPP_STD_VER > 14
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY owner_less<void>
+struct _LIBCPP_TEMPLATE_VIS owner_less<void>
 {
 {
     template <class _Tp, class _Up>
     template <class _Tp, class _Up>
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -5432,7 +5432,7 @@ struct _LIBCPP_TYPE_VIS_ONLY owner_less<void>
 #endif
 #endif
 
 
 template<class _Tp>
 template<class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY enable_shared_from_this
+class _LIBCPP_TEMPLATE_VIS enable_shared_from_this
 {
 {
     mutable weak_ptr<_Tp> __weak_this_;
     mutable weak_ptr<_Tp> __weak_this_;
 protected:
 protected:
@@ -5467,7 +5467,7 @@ public:
 };
 };
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY hash<shared_ptr<_Tp> >
+struct _LIBCPP_TEMPLATE_VIS hash<shared_ptr<_Tp> >
 {
 {
     typedef shared_ptr<_Tp>      argument_type;
     typedef shared_ptr<_Tp>      argument_type;
     typedef size_t               result_type;
     typedef size_t               result_type;

+ 4 - 4
include/mutex

@@ -465,7 +465,7 @@ void __unlock(_L0& __l0, _L1& __l1, _L2& __l2, _L3&... __l3) {
 
 
 #endif // !_LIBCPP_HAS_NO_THREADS
 #endif // !_LIBCPP_HAS_NO_THREADS
 
 
-struct _LIBCPP_TYPE_VIS_ONLY once_flag;
+struct _LIBCPP_TEMPLATE_VIS once_flag;
 
 
 #ifndef _LIBCPP_HAS_NO_VARIADICS
 #ifndef _LIBCPP_HAS_NO_VARIADICS
 
 
@@ -485,7 +485,7 @@ void call_once(once_flag&, const _Callable&);
 
 
 #endif  // _LIBCPP_HAS_NO_VARIADICS
 #endif  // _LIBCPP_HAS_NO_VARIADICS
 
 
-struct _LIBCPP_TYPE_VIS_ONLY once_flag
+struct _LIBCPP_TEMPLATE_VIS once_flag
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_CONSTEXPR
     _LIBCPP_CONSTEXPR
@@ -615,7 +615,7 @@ call_once(once_flag& __flag, const _Callable& __func)
 #if defined(_LIBCPP_ABI_VARIADIC_LOCK_GUARD) \
 #if defined(_LIBCPP_ABI_VARIADIC_LOCK_GUARD) \
     && !defined(_LIBCPP_CXX03_LANG)
     && !defined(_LIBCPP_CXX03_LANG)
 template <>
 template <>
-class _LIBCPP_TYPE_VIS_ONLY lock_guard<> {
+class _LIBCPP_TEMPLATE_VIS lock_guard<> {
 public:
 public:
     explicit lock_guard() {}
     explicit lock_guard() {}
     ~lock_guard() = default;
     ~lock_guard() = default;
@@ -628,7 +628,7 @@ public:
 };
 };
 
 
 template <class ..._MArgs>
 template <class ..._MArgs>
-class _LIBCPP_TYPE_VIS_ONLY lock_guard
+class _LIBCPP_TEMPLATE_VIS lock_guard
 {
 {
     static_assert(sizeof...(_MArgs) >= 2, "At least 2 lock types required");
     static_assert(sizeof...(_MArgs) >= 2, "At least 2 lock types required");
     typedef tuple<_MArgs&...> _MutexTuple;
     typedef tuple<_MArgs&...> _MutexTuple;

+ 1 - 1
include/optional

@@ -1295,7 +1295,7 @@ optional<_Tp> make_optional(initializer_list<_Up> __il,  _Args&&... __args)
 }
 }
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY hash<optional<_Tp> >
+struct _LIBCPP_TEMPLATE_VIS hash<optional<_Tp> >
 {
 {
     typedef optional<_Tp> argument_type;
     typedef optional<_Tp> argument_type;
     typedef size_t        result_type;
     typedef size_t        result_type;

+ 3 - 3
include/ostream

@@ -148,7 +148,7 @@ template <class charT, class traits, class T>
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
 template <class _CharT, class _Traits>
 template <class _CharT, class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY basic_ostream
+class _LIBCPP_TEMPLATE_VIS basic_ostream
     : virtual public basic_ios<_CharT, _Traits>
     : virtual public basic_ios<_CharT, _Traits>
 {
 {
 public:
 public:
@@ -189,7 +189,7 @@ protected:
 public:
 public:
 
 
     // 27.7.2.4 Prefix/suffix:
     // 27.7.2.4 Prefix/suffix:
-    class _LIBCPP_TYPE_VIS_ONLY sentry;
+    class _LIBCPP_TEMPLATE_VIS sentry;
 
 
     // 27.7.2.6 Formatted output:
     // 27.7.2.6 Formatted output:
     inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY
     inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY
@@ -239,7 +239,7 @@ protected:
 };
 };
 
 
 template <class _CharT, class _Traits>
 template <class _CharT, class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY basic_ostream<_CharT, _Traits>::sentry
+class _LIBCPP_TEMPLATE_VIS basic_ostream<_CharT, _Traits>::sentry
 {
 {
     bool __ok_;
     bool __ok_;
     basic_ostream<_CharT, _Traits>& __os_;
     basic_ostream<_CharT, _Traits>& __os_;

+ 5 - 5
include/queue

@@ -178,7 +178,7 @@ template <class T, class Container, class Compare>
 
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
-template <class _Tp, class _Container = deque<_Tp> > class _LIBCPP_TYPE_VIS_ONLY queue;
+template <class _Tp, class _Container = deque<_Tp> > class _LIBCPP_TEMPLATE_VIS queue;
 
 
 template <class _Tp, class _Container>
 template <class _Tp, class _Container>
 _LIBCPP_INLINE_VISIBILITY
 _LIBCPP_INLINE_VISIBILITY
@@ -191,7 +191,7 @@ bool
 operator< (const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y);
 operator< (const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y);
 
 
 template <class _Tp, class _Container /*= deque<_Tp>*/>
 template <class _Tp, class _Container /*= deque<_Tp>*/>
-class _LIBCPP_TYPE_VIS_ONLY queue
+class _LIBCPP_TEMPLATE_VIS queue
 {
 {
 public:
 public:
     typedef _Container                               container_type;
     typedef _Container                               container_type;
@@ -381,14 +381,14 @@ swap(queue<_Tp, _Container>& __x, queue<_Tp, _Container>& __y)
 }
 }
 
 
 template <class _Tp, class _Container, class _Alloc>
 template <class _Tp, class _Container, class _Alloc>
-struct _LIBCPP_TYPE_VIS_ONLY uses_allocator<queue<_Tp, _Container>, _Alloc>
+struct _LIBCPP_TEMPLATE_VIS uses_allocator<queue<_Tp, _Container>, _Alloc>
     : public uses_allocator<_Container, _Alloc>
     : public uses_allocator<_Container, _Alloc>
 {
 {
 };
 };
 
 
 template <class _Tp, class _Container = vector<_Tp>,
 template <class _Tp, class _Container = vector<_Tp>,
           class _Compare = less<typename _Container::value_type> >
           class _Compare = less<typename _Container::value_type> >
-class _LIBCPP_TYPE_VIS_ONLY priority_queue
+class _LIBCPP_TEMPLATE_VIS priority_queue
 {
 {
 public:
 public:
     typedef _Container                               container_type;
     typedef _Container                               container_type;
@@ -732,7 +732,7 @@ swap(priority_queue<_Tp, _Container, _Compare>& __x,
 }
 }
 
 
 template <class _Tp, class _Container, class _Compare, class _Alloc>
 template <class _Tp, class _Container, class _Compare, class _Alloc>
-struct _LIBCPP_TYPE_VIS_ONLY uses_allocator<priority_queue<_Tp, _Container, _Compare>, _Alloc>
+struct _LIBCPP_TEMPLATE_VIS uses_allocator<priority_queue<_Tp, _Container, _Compare>, _Alloc>
     : public uses_allocator<_Container, _Alloc>
     : public uses_allocator<_Container, _Alloc>
 {
 {
 };
 };

+ 48 - 48
include/random

@@ -1813,7 +1813,7 @@ struct __lce_ta<__a, __c, __m, (unsigned short)(~0), __b>
 };
 };
 
 
 template <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
 template <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
-class _LIBCPP_TYPE_VIS_ONLY linear_congruential_engine;
+class _LIBCPP_TEMPLATE_VIS linear_congruential_engine;
 
 
 template <class _CharT, class _Traits,
 template <class _CharT, class _Traits,
           class _Up, _Up _Ap, _Up _Cp, _Up _Np>
           class _Up, _Up _Ap, _Up _Cp, _Up _Np>
@@ -1829,7 +1829,7 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
            linear_congruential_engine<_Up, _Ap, _Cp, _Np>& __x);
            linear_congruential_engine<_Up, _Ap, _Cp, _Np>& __x);
 
 
 template <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
 template <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
-class _LIBCPP_TYPE_VIS_ONLY linear_congruential_engine
+class _LIBCPP_TEMPLATE_VIS linear_congruential_engine
 {
 {
 public:
 public:
     // types
     // types
@@ -2011,7 +2011,7 @@ typedef minstd_rand                                       default_random_engine;
 template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
 template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
           _UIntType __a, size_t __u, _UIntType __d, size_t __s,
           _UIntType __a, size_t __u, _UIntType __d, size_t __s,
           _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
           _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
-class _LIBCPP_TYPE_VIS_ONLY mersenne_twister_engine;
+class _LIBCPP_TEMPLATE_VIS mersenne_twister_engine;
 
 
 template <class _UI, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
 template <class _UI, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,
           _UI _Ap, size_t _Up, _UI _Dp, size_t _Sp,
           _UI _Ap, size_t _Up, _UI _Dp, size_t _Sp,
@@ -2053,7 +2053,7 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
 template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
           _UIntType __a, size_t __u, _UIntType __d, size_t __s,
           _UIntType __a, size_t __u, _UIntType __d, size_t __s,
           _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
           _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
-class _LIBCPP_TYPE_VIS_ONLY mersenne_twister_engine
+class _LIBCPP_TEMPLATE_VIS mersenne_twister_engine
 {
 {
 public:
 public:
     // types
     // types
@@ -2499,7 +2499,7 @@ typedef mersenne_twister_engine<uint_fast64_t, 64, 312, 156, 31,
 // subtract_with_carry_engine
 // subtract_with_carry_engine
 
 
 template<class _UIntType, size_t __w, size_t __s, size_t __r>
 template<class _UIntType, size_t __w, size_t __s, size_t __r>
-class _LIBCPP_TYPE_VIS_ONLY subtract_with_carry_engine;
+class _LIBCPP_TEMPLATE_VIS subtract_with_carry_engine;
 
 
 template<class _UI, size_t _Wp, size_t _Sp, size_t _Rp>
 template<class _UI, size_t _Wp, size_t _Sp, size_t _Rp>
 bool
 bool
@@ -2527,7 +2527,7 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
            subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __x);
            subtract_with_carry_engine<_UI, _Wp, _Sp, _Rp>& __x);
 
 
 template<class _UIntType, size_t __w, size_t __s, size_t __r>
 template<class _UIntType, size_t __w, size_t __s, size_t __r>
-class _LIBCPP_TYPE_VIS_ONLY subtract_with_carry_engine
+class _LIBCPP_TEMPLATE_VIS subtract_with_carry_engine
 {
 {
 public:
 public:
     // types
     // types
@@ -2810,7 +2810,7 @@ typedef subtract_with_carry_engine<uint_fast64_t, 48,  5, 12>     ranlux48_base;
 // discard_block_engine
 // discard_block_engine
 
 
 template<class _Engine, size_t __p, size_t __r>
 template<class _Engine, size_t __p, size_t __r>
-class _LIBCPP_TYPE_VIS_ONLY discard_block_engine
+class _LIBCPP_TEMPLATE_VIS discard_block_engine
 {
 {
     _Engine __e_;
     _Engine __e_;
     int     __n_;
     int     __n_;
@@ -2984,7 +2984,7 @@ typedef discard_block_engine<ranlux48_base, 389, 11> ranlux48;
 // independent_bits_engine
 // independent_bits_engine
 
 
 template<class _Engine, size_t __w, class _UIntType>
 template<class _Engine, size_t __w, class _UIntType>
-class _LIBCPP_TYPE_VIS_ONLY independent_bits_engine
+class _LIBCPP_TEMPLATE_VIS independent_bits_engine
 {
 {
     template <class _UI, _UI _R0, size_t _Wp, size_t _Mp>
     template <class _UI, _UI _R0, size_t _Wp, size_t _Mp>
     class __get_n
     class __get_n
@@ -3248,7 +3248,7 @@ public:
 };
 };
 
 
 template<class _Engine, size_t __k>
 template<class _Engine, size_t __k>
-class _LIBCPP_TYPE_VIS_ONLY shuffle_order_engine
+class _LIBCPP_TEMPLATE_VIS shuffle_order_engine
 {
 {
     static_assert(0 < __k, "shuffle_order_engine invalid parameters");
     static_assert(0 < __k, "shuffle_order_engine invalid parameters");
 public:
 public:
@@ -3511,7 +3511,7 @@ private:
 
 
 // seed_seq
 // seed_seq
 
 
-class _LIBCPP_TYPE_VIS_ONLY seed_seq
+class _LIBCPP_TEMPLATE_VIS seed_seq
 {
 {
 public:
 public:
     // types
     // types
@@ -3688,13 +3688,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // uniform_real_distribution
 // uniform_real_distribution
 
 
 template<class _RealType = double>
 template<class _RealType = double>
-class _LIBCPP_TYPE_VIS_ONLY uniform_real_distribution
+class _LIBCPP_TEMPLATE_VIS uniform_real_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _RealType result_type;
     typedef _RealType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         result_type __a_;
         result_type __a_;
         result_type __b_;
         result_type __b_;
@@ -3809,13 +3809,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 
 
 // bernoulli_distribution
 // bernoulli_distribution
 
 
-class _LIBCPP_TYPE_VIS_ONLY bernoulli_distribution
+class _LIBCPP_TEMPLATE_VIS bernoulli_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef bool result_type;
     typedef bool result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         double __p_;
         double __p_;
     public:
     public:
@@ -3918,13 +3918,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is, bernoulli_distribution& __x)
 // binomial_distribution
 // binomial_distribution
 
 
 template<class _IntType = int>
 template<class _IntType = int>
-class _LIBCPP_TYPE_VIS_ONLY binomial_distribution
+class _LIBCPP_TEMPLATE_VIS binomial_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _IntType result_type;
     typedef _IntType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         result_type __t_;
         result_type __t_;
         double __p_;
         double __p_;
@@ -4086,13 +4086,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // exponential_distribution
 // exponential_distribution
 
 
 template<class _RealType = double>
 template<class _RealType = double>
-class _LIBCPP_TYPE_VIS_ONLY exponential_distribution
+class _LIBCPP_TEMPLATE_VIS exponential_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _RealType result_type;
     typedef _RealType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         result_type __lambda_;
         result_type __lambda_;
     public:
     public:
@@ -4201,13 +4201,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // normal_distribution
 // normal_distribution
 
 
 template<class _RealType = double>
 template<class _RealType = double>
-class _LIBCPP_TYPE_VIS_ONLY normal_distribution
+class _LIBCPP_TEMPLATE_VIS normal_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _RealType result_type;
     typedef _RealType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         result_type __mean_;
         result_type __mean_;
         result_type __stddev_;
         result_type __stddev_;
@@ -4369,13 +4369,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // lognormal_distribution
 // lognormal_distribution
 
 
 template<class _RealType = double>
 template<class _RealType = double>
-class _LIBCPP_TYPE_VIS_ONLY lognormal_distribution
+class _LIBCPP_TEMPLATE_VIS lognormal_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _RealType result_type;
     typedef _RealType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         normal_distribution<result_type> __nd_;
         normal_distribution<result_type> __nd_;
     public:
     public:
@@ -4494,13 +4494,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // poisson_distribution
 // poisson_distribution
 
 
 template<class _IntType = int>
 template<class _IntType = int>
-class _LIBCPP_TYPE_VIS_ONLY poisson_distribution
+class _LIBCPP_TEMPLATE_VIS poisson_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _IntType result_type;
     typedef _IntType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         double __mean_;
         double __mean_;
         double __s_;
         double __s_;
@@ -4725,13 +4725,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // weibull_distribution
 // weibull_distribution
 
 
 template<class _RealType = double>
 template<class _RealType = double>
-class _LIBCPP_TYPE_VIS_ONLY weibull_distribution
+class _LIBCPP_TEMPLATE_VIS weibull_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _RealType result_type;
     typedef _RealType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         result_type __a_;
         result_type __a_;
         result_type __b_;
         result_type __b_;
@@ -4839,13 +4839,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 }
 }
 
 
 template<class _RealType = double>
 template<class _RealType = double>
-class _LIBCPP_TYPE_VIS_ONLY extreme_value_distribution
+class _LIBCPP_TEMPLATE_VIS extreme_value_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _RealType result_type;
     typedef _RealType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         result_type __a_;
         result_type __a_;
         result_type __b_;
         result_type __b_;
@@ -4960,13 +4960,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // gamma_distribution
 // gamma_distribution
 
 
 template<class _RealType = double>
 template<class _RealType = double>
-class _LIBCPP_TYPE_VIS_ONLY gamma_distribution
+class _LIBCPP_TEMPLATE_VIS gamma_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _RealType result_type;
     typedef _RealType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         result_type __alpha_;
         result_type __alpha_;
         result_type __beta_;
         result_type __beta_;
@@ -5132,13 +5132,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // negative_binomial_distribution
 // negative_binomial_distribution
 
 
 template<class _IntType = int>
 template<class _IntType = int>
-class _LIBCPP_TYPE_VIS_ONLY negative_binomial_distribution
+class _LIBCPP_TEMPLATE_VIS negative_binomial_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _IntType result_type;
     typedef _IntType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         result_type __k_;
         result_type __k_;
         double __p_;
         double __p_;
@@ -5267,13 +5267,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // geometric_distribution
 // geometric_distribution
 
 
 template<class _IntType = int>
 template<class _IntType = int>
-class _LIBCPP_TYPE_VIS_ONLY geometric_distribution
+class _LIBCPP_TEMPLATE_VIS geometric_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _IntType result_type;
     typedef _IntType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         double __p_;
         double __p_;
     public:
     public:
@@ -5369,13 +5369,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // chi_squared_distribution
 // chi_squared_distribution
 
 
 template<class _RealType = double>
 template<class _RealType = double>
-class _LIBCPP_TYPE_VIS_ONLY chi_squared_distribution
+class _LIBCPP_TEMPLATE_VIS chi_squared_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _RealType result_type;
     typedef _RealType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         result_type __n_;
         result_type __n_;
     public:
     public:
@@ -5475,13 +5475,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // cauchy_distribution
 // cauchy_distribution
 
 
 template<class _RealType = double>
 template<class _RealType = double>
-class _LIBCPP_TYPE_VIS_ONLY cauchy_distribution
+class _LIBCPP_TEMPLATE_VIS cauchy_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _RealType result_type;
     typedef _RealType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         result_type __a_;
         result_type __a_;
         result_type __b_;
         result_type __b_;
@@ -5598,13 +5598,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // fisher_f_distribution
 // fisher_f_distribution
 
 
 template<class _RealType = double>
 template<class _RealType = double>
-class _LIBCPP_TYPE_VIS_ONLY fisher_f_distribution
+class _LIBCPP_TEMPLATE_VIS fisher_f_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _RealType result_type;
     typedef _RealType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         result_type __m_;
         result_type __m_;
         result_type __n_;
         result_type __n_;
@@ -5720,13 +5720,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // student_t_distribution
 // student_t_distribution
 
 
 template<class _RealType = double>
 template<class _RealType = double>
-class _LIBCPP_TYPE_VIS_ONLY student_t_distribution
+class _LIBCPP_TEMPLATE_VIS student_t_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _RealType result_type;
     typedef _RealType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         result_type __n_;
         result_type __n_;
     public:
     public:
@@ -5833,13 +5833,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // discrete_distribution
 // discrete_distribution
 
 
 template<class _IntType = int>
 template<class _IntType = int>
-class _LIBCPP_TYPE_VIS_ONLY discrete_distribution
+class _LIBCPP_TEMPLATE_VIS discrete_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _IntType result_type;
     typedef _IntType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         vector<double> __p_;
         vector<double> __p_;
     public:
     public:
@@ -6061,13 +6061,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // piecewise_constant_distribution
 // piecewise_constant_distribution
 
 
 template<class _RealType = double>
 template<class _RealType = double>
-class _LIBCPP_TYPE_VIS_ONLY piecewise_constant_distribution
+class _LIBCPP_TEMPLATE_VIS piecewise_constant_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _RealType result_type;
     typedef _RealType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         vector<result_type> __b_;
         vector<result_type> __b_;
         vector<result_type> __densities_;
         vector<result_type> __densities_;
@@ -6384,13 +6384,13 @@ operator>>(basic_istream<_CharT, _Traits>& __is,
 // piecewise_linear_distribution
 // piecewise_linear_distribution
 
 
 template<class _RealType = double>
 template<class _RealType = double>
-class _LIBCPP_TYPE_VIS_ONLY piecewise_linear_distribution
+class _LIBCPP_TEMPLATE_VIS piecewise_linear_distribution
 {
 {
 public:
 public:
     // types
     // types
     typedef _RealType result_type;
     typedef _RealType result_type;
 
 
-    class _LIBCPP_TYPE_VIS_ONLY param_type
+    class _LIBCPP_TEMPLATE_VIS param_type
     {
     {
         vector<result_type> __b_;
         vector<result_type> __b_;
         vector<result_type> __densities_;
         vector<result_type> __densities_;

+ 11 - 11
include/ratio

@@ -244,7 +244,7 @@ public:
 };
 };
 
 
 template <intmax_t _Num, intmax_t _Den = 1>
 template <intmax_t _Num, intmax_t _Den = 1>
-class _LIBCPP_TYPE_VIS_ONLY ratio
+class _LIBCPP_TEMPLATE_VIS ratio
 {
 {
     static_assert(__static_abs<_Num>::value >= 0, "ratio numerator is out of range");
     static_assert(__static_abs<_Num>::value >= 0, "ratio numerator is out of range");
     static_assert(_Den != 0, "ratio divide by 0");
     static_assert(_Den != 0, "ratio divide by 0");
@@ -308,7 +308,7 @@ template <class _R1, class _R2> using ratio_multiply
 #else  // _LIBCPP_CXX03_LANG
 #else  // _LIBCPP_CXX03_LANG
 
 
 template <class _R1, class _R2>
 template <class _R1, class _R2>
-struct _LIBCPP_TYPE_VIS_ONLY ratio_multiply
+struct _LIBCPP_TEMPLATE_VIS ratio_multiply
     : public __ratio_multiply<_R1, _R2>::type {};
     : public __ratio_multiply<_R1, _R2>::type {};
 
 
 #endif  // _LIBCPP_CXX03_LANG
 #endif  // _LIBCPP_CXX03_LANG
@@ -335,7 +335,7 @@ template <class _R1, class _R2> using ratio_divide
 #else  // _LIBCPP_CXX03_LANG
 #else  // _LIBCPP_CXX03_LANG
 
 
 template <class _R1, class _R2>
 template <class _R1, class _R2>
-struct _LIBCPP_TYPE_VIS_ONLY ratio_divide
+struct _LIBCPP_TEMPLATE_VIS ratio_divide
     : public __ratio_divide<_R1, _R2>::type {};
     : public __ratio_divide<_R1, _R2>::type {};
 
 
 #endif  // _LIBCPP_CXX03_LANG
 #endif  // _LIBCPP_CXX03_LANG
@@ -370,7 +370,7 @@ template <class _R1, class _R2> using ratio_add
 #else  // _LIBCPP_CXX03_LANG
 #else  // _LIBCPP_CXX03_LANG
 
 
 template <class _R1, class _R2>
 template <class _R1, class _R2>
-struct _LIBCPP_TYPE_VIS_ONLY ratio_add
+struct _LIBCPP_TEMPLATE_VIS ratio_add
     : public __ratio_add<_R1, _R2>::type {};
     : public __ratio_add<_R1, _R2>::type {};
 
 
 #endif  // _LIBCPP_CXX03_LANG
 #endif  // _LIBCPP_CXX03_LANG
@@ -405,7 +405,7 @@ template <class _R1, class _R2> using ratio_subtract
 #else  // _LIBCPP_CXX03_LANG
 #else  // _LIBCPP_CXX03_LANG
 
 
 template <class _R1, class _R2>
 template <class _R1, class _R2>
-struct _LIBCPP_TYPE_VIS_ONLY ratio_subtract
+struct _LIBCPP_TEMPLATE_VIS ratio_subtract
     : public __ratio_subtract<_R1, _R2>::type {};
     : public __ratio_subtract<_R1, _R2>::type {};
 
 
 #endif  // _LIBCPP_CXX03_LANG
 #endif  // _LIBCPP_CXX03_LANG
@@ -413,11 +413,11 @@ struct _LIBCPP_TYPE_VIS_ONLY ratio_subtract
 // ratio_equal
 // ratio_equal
 
 
 template <class _R1, class _R2>
 template <class _R1, class _R2>
-struct _LIBCPP_TYPE_VIS_ONLY ratio_equal
+struct _LIBCPP_TEMPLATE_VIS ratio_equal
     : public _LIBCPP_BOOL_CONSTANT((_R1::num == _R2::num && _R1::den == _R2::den)) {};
     : public _LIBCPP_BOOL_CONSTANT((_R1::num == _R2::num && _R1::den == _R2::den)) {};
 
 
 template <class _R1, class _R2>
 template <class _R1, class _R2>
-struct _LIBCPP_TYPE_VIS_ONLY ratio_not_equal
+struct _LIBCPP_TEMPLATE_VIS ratio_not_equal
     : public _LIBCPP_BOOL_CONSTANT((!ratio_equal<_R1, _R2>::value)) {};
     : public _LIBCPP_BOOL_CONSTANT((!ratio_equal<_R1, _R2>::value)) {};
 
 
 // ratio_less
 // ratio_less
@@ -476,19 +476,19 @@ struct __ratio_less<_R1, _R2, -1LL, -1LL>
 };
 };
 
 
 template <class _R1, class _R2>
 template <class _R1, class _R2>
-struct _LIBCPP_TYPE_VIS_ONLY ratio_less
+struct _LIBCPP_TEMPLATE_VIS ratio_less
     : public _LIBCPP_BOOL_CONSTANT((__ratio_less<_R1, _R2>::value)) {};
     : public _LIBCPP_BOOL_CONSTANT((__ratio_less<_R1, _R2>::value)) {};
 
 
 template <class _R1, class _R2>
 template <class _R1, class _R2>
-struct _LIBCPP_TYPE_VIS_ONLY ratio_less_equal
+struct _LIBCPP_TEMPLATE_VIS ratio_less_equal
     : public _LIBCPP_BOOL_CONSTANT((!ratio_less<_R2, _R1>::value)) {};
     : public _LIBCPP_BOOL_CONSTANT((!ratio_less<_R2, _R1>::value)) {};
 
 
 template <class _R1, class _R2>
 template <class _R1, class _R2>
-struct _LIBCPP_TYPE_VIS_ONLY ratio_greater
+struct _LIBCPP_TEMPLATE_VIS ratio_greater
     : public _LIBCPP_BOOL_CONSTANT((ratio_less<_R2, _R1>::value)) {};
     : public _LIBCPP_BOOL_CONSTANT((ratio_less<_R2, _R1>::value)) {};
 
 
 template <class _R1, class _R2>
 template <class _R1, class _R2>
-struct _LIBCPP_TYPE_VIS_ONLY ratio_greater_equal
+struct _LIBCPP_TEMPLATE_VIS ratio_greater_equal
     : public _LIBCPP_BOOL_CONSTANT((!ratio_less<_R1, _R2>::value)) {};
     : public _LIBCPP_BOOL_CONSTANT((!ratio_less<_R1, _R2>::value)) {};
 
 
 template <class _R1, class _R2>
 template <class _R1, class _R2>

+ 8 - 8
include/regex

@@ -970,7 +970,7 @@ void __throw_regex_error()
 }
 }
 
 
 template <class _CharT>
 template <class _CharT>
-struct _LIBCPP_TYPE_VIS_ONLY regex_traits
+struct _LIBCPP_TEMPLATE_VIS regex_traits
 {
 {
 public:
 public:
     typedef _CharT                  char_type;
     typedef _CharT                  char_type;
@@ -1287,11 +1287,11 @@ regex_traits<_CharT>::__regex_traits_value(wchar_t __ch, int __radix) const
 
 
 template <class _CharT> class __node;
 template <class _CharT> class __node;
 
 
-template <class _BidirectionalIterator> class _LIBCPP_TYPE_VIS_ONLY sub_match;
+template <class _BidirectionalIterator> class _LIBCPP_TEMPLATE_VIS sub_match;
 
 
 template <class _BidirectionalIterator,
 template <class _BidirectionalIterator,
           class _Allocator = allocator<sub_match<_BidirectionalIterator> > >
           class _Allocator = allocator<sub_match<_BidirectionalIterator> > >
-class _LIBCPP_TYPE_VIS_ONLY match_results;
+class _LIBCPP_TEMPLATE_VIS match_results;
 
 
 template <class _CharT>
 template <class _CharT>
 struct __state
 struct __state
@@ -2472,7 +2472,7 @@ __exit:
 template <class _CharT, class _Traits> class __lookahead;
 template <class _CharT, class _Traits> class __lookahead;
 
 
 template <class _CharT, class _Traits = regex_traits<_CharT> >
 template <class _CharT, class _Traits = regex_traits<_CharT> >
-class _LIBCPP_TYPE_VIS_ONLY basic_regex
+class _LIBCPP_TEMPLATE_VIS basic_regex
 {
 {
 public:
 public:
     // types:
     // types:
@@ -4765,7 +4765,7 @@ typedef basic_regex<wchar_t> wregex;
 // sub_match
 // sub_match
 
 
 template <class _BidirectionalIterator>
 template <class _BidirectionalIterator>
-class _LIBCPP_TYPE_VIS_ONLY sub_match
+class _LIBCPP_TEMPLATE_VIS sub_match
     : public pair<_BidirectionalIterator, _BidirectionalIterator>
     : public pair<_BidirectionalIterator, _BidirectionalIterator>
 {
 {
 public:
 public:
@@ -5188,7 +5188,7 @@ operator<<(basic_ostream<_CharT, _ST>& __os, const sub_match<_BiIter>& __m)
 }
 }
 
 
 template <class _BidirectionalIterator, class _Allocator>
 template <class _BidirectionalIterator, class _Allocator>
-class _LIBCPP_TYPE_VIS_ONLY match_results
+class _LIBCPP_TEMPLATE_VIS match_results
 {
 {
 public:
 public:
     typedef _Allocator                                        allocator_type;
     typedef _Allocator                                        allocator_type;
@@ -6052,7 +6052,7 @@ regex_match(const basic_string<_CharT, _ST, _SA>& __s,
 template <class _BidirectionalIterator,
 template <class _BidirectionalIterator,
           class _CharT = typename iterator_traits<_BidirectionalIterator>::value_type,
           class _CharT = typename iterator_traits<_BidirectionalIterator>::value_type,
           class _Traits = regex_traits<_CharT> >
           class _Traits = regex_traits<_CharT> >
-class _LIBCPP_TYPE_VIS_ONLY regex_iterator
+class _LIBCPP_TEMPLATE_VIS regex_iterator
 {
 {
 public:
 public:
     typedef basic_regex<_CharT, _Traits>          regex_type;
     typedef basic_regex<_CharT, _Traits>          regex_type;
@@ -6171,7 +6171,7 @@ typedef regex_iterator<wstring::const_iterator> wsregex_iterator;
 template <class _BidirectionalIterator,
 template <class _BidirectionalIterator,
           class _CharT = typename iterator_traits<_BidirectionalIterator>::value_type,
           class _CharT = typename iterator_traits<_BidirectionalIterator>::value_type,
           class _Traits = regex_traits<_CharT> >
           class _Traits = regex_traits<_CharT> >
-class _LIBCPP_TYPE_VIS_ONLY regex_token_iterator
+class _LIBCPP_TEMPLATE_VIS regex_token_iterator
 {
 {
 public:
 public:
     typedef basic_regex<_CharT, _Traits>      regex_type;
     typedef basic_regex<_CharT, _Traits>      regex_type;

+ 1 - 1
include/scoped_allocator

@@ -384,7 +384,7 @@ struct __outermost<_Alloc, true>
 };
 };
 
 
 template <class _OuterAlloc, class... _InnerAllocs>
 template <class _OuterAlloc, class... _InnerAllocs>
-class _LIBCPP_TYPE_VIS_ONLY scoped_allocator_adaptor<_OuterAlloc, _InnerAllocs...>
+class _LIBCPP_TEMPLATE_VIS scoped_allocator_adaptor<_OuterAlloc, _InnerAllocs...>
     : public __scoped_allocator_storage<_OuterAlloc, _InnerAllocs...>
     : public __scoped_allocator_storage<_OuterAlloc, _InnerAllocs...>
 {
 {
     typedef __scoped_allocator_storage<_OuterAlloc, _InnerAllocs...> base;
     typedef __scoped_allocator_storage<_OuterAlloc, _InnerAllocs...> base;

+ 2 - 2
include/set

@@ -397,7 +397,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 
 
 template <class _Key, class _Compare = less<_Key>,
 template <class _Key, class _Compare = less<_Key>,
           class _Allocator = allocator<_Key> >
           class _Allocator = allocator<_Key> >
-class _LIBCPP_TYPE_VIS_ONLY set
+class _LIBCPP_TEMPLATE_VIS set
 {
 {
 public:
 public:
     // types:
     // types:
@@ -810,7 +810,7 @@ swap(set<_Key, _Compare, _Allocator>& __x,
 
 
 template <class _Key, class _Compare = less<_Key>,
 template <class _Key, class _Compare = less<_Key>,
           class _Allocator = allocator<_Key> >
           class _Allocator = allocator<_Key> >
-class _LIBCPP_TYPE_VIS_ONLY multiset
+class _LIBCPP_TEMPLATE_VIS multiset
 {
 {
 public:
 public:
     // types:
     // types:

+ 4 - 4
include/sstream

@@ -186,7 +186,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 // basic_stringbuf
 // basic_stringbuf
 
 
 template <class _CharT, class _Traits, class _Allocator>
 template <class _CharT, class _Traits, class _Allocator>
-class _LIBCPP_TYPE_VIS_ONLY basic_stringbuf
+class _LIBCPP_TEMPLATE_VIS basic_stringbuf
     : public basic_streambuf<_CharT, _Traits>
     : public basic_streambuf<_CharT, _Traits>
 {
 {
 public:
 public:
@@ -618,7 +618,7 @@ basic_stringbuf<_CharT, _Traits, _Allocator>::seekpos(pos_type __sp,
 // basic_istringstream
 // basic_istringstream
 
 
 template <class _CharT, class _Traits, class _Allocator>
 template <class _CharT, class _Traits, class _Allocator>
-class _LIBCPP_TYPE_VIS_ONLY basic_istringstream
+class _LIBCPP_TEMPLATE_VIS basic_istringstream
     : public basic_istream<_CharT, _Traits>
     : public basic_istream<_CharT, _Traits>
 {
 {
 public:
 public:
@@ -735,7 +735,7 @@ void basic_istringstream<_CharT, _Traits, _Allocator>::str(const string_type& __
 // basic_ostringstream
 // basic_ostringstream
 
 
 template <class _CharT, class _Traits, class _Allocator>
 template <class _CharT, class _Traits, class _Allocator>
-class _LIBCPP_TYPE_VIS_ONLY basic_ostringstream
+class _LIBCPP_TEMPLATE_VIS basic_ostringstream
     : public basic_ostream<_CharT, _Traits>
     : public basic_ostream<_CharT, _Traits>
 {
 {
 public:
 public:
@@ -854,7 +854,7 @@ basic_ostringstream<_CharT, _Traits, _Allocator>::str(const string_type& __s)
 // basic_stringstream
 // basic_stringstream
 
 
 template <class _CharT, class _Traits, class _Allocator>
 template <class _CharT, class _Traits, class _Allocator>
-class _LIBCPP_TYPE_VIS_ONLY basic_stringstream
+class _LIBCPP_TEMPLATE_VIS basic_stringstream
     : public basic_iostream<_CharT, _Traits>
     : public basic_iostream<_CharT, _Traits>
 {
 {
 public:
 public:

+ 3 - 3
include/stack

@@ -91,7 +91,7 @@ template <class T, class Container>
 
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
-template <class _Tp, class _Container = deque<_Tp> > class _LIBCPP_TYPE_VIS_ONLY stack;
+template <class _Tp, class _Container = deque<_Tp> > class _LIBCPP_TEMPLATE_VIS stack;
 
 
 template <class _Tp, class _Container>
 template <class _Tp, class _Container>
 _LIBCPP_INLINE_VISIBILITY
 _LIBCPP_INLINE_VISIBILITY
@@ -104,7 +104,7 @@ bool
 operator< (const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y);
 operator< (const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y);
 
 
 template <class _Tp, class _Container /*= deque<_Tp>*/>
 template <class _Tp, class _Container /*= deque<_Tp>*/>
-class _LIBCPP_TYPE_VIS_ONLY stack
+class _LIBCPP_TEMPLATE_VIS stack
 {
 {
 public:
 public:
     typedef _Container                               container_type;
     typedef _Container                               container_type;
@@ -286,7 +286,7 @@ swap(stack<_Tp, _Container>& __x, stack<_Tp, _Container>& __y)
 }
 }
 
 
 template <class _Tp, class _Container, class _Alloc>
 template <class _Tp, class _Container, class _Alloc>
-struct _LIBCPP_TYPE_VIS_ONLY uses_allocator<stack<_Tp, _Container>, _Alloc>
+struct _LIBCPP_TEMPLATE_VIS uses_allocator<stack<_Tp, _Container>, _Alloc>
     : public uses_allocator<_Container, _Alloc>
     : public uses_allocator<_Container, _Alloc>
 {
 {
 };
 };

+ 1 - 1
include/streambuf

@@ -119,7 +119,7 @@ protected:
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
 template <class _CharT, class _Traits>
 template <class _CharT, class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY basic_streambuf
+class _LIBCPP_TEMPLATE_VIS basic_streambuf
 {
 {
 public:
 public:
     // types:
     // types:

+ 4 - 4
include/string

@@ -497,7 +497,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 // fpos
 // fpos
 
 
 template <class _StateT>
 template <class _StateT>
-class _LIBCPP_TYPE_VIS_ONLY fpos
+class _LIBCPP_TEMPLATE_VIS fpos
 {
 {
 private:
 private:
     _StateT __st_;
     _StateT __st_;
@@ -555,7 +555,7 @@ basic_string<_CharT, _Traits, _Allocator>
 operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, _CharT __y);
 operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, _CharT __y);
 
 
 template <bool>
 template <bool>
-class _LIBCPP_TYPE_VIS_ONLY __basic_string_common
+class _LIBCPP_TEMPLATE_VIS __basic_string_common
 {
 {
 protected:
 protected:
     _LIBCPP_NORETURN void __throw_length_error() const;
     _LIBCPP_NORETURN void __throw_length_error() const;
@@ -630,7 +630,7 @@ struct __padding<_CharT, 1>
 #endif  // _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT
 #endif  // _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT
 
 
 template<class _CharT, class _Traits, class _Allocator>
 template<class _CharT, class _Traits, class _Allocator>
-class _LIBCPP_TYPE_VIS_ONLY basic_string
+class _LIBCPP_TEMPLATE_VIS basic_string
     : private __basic_string_common<true>
     : private __basic_string_common<true>
 {
 {
 public:
 public:
@@ -3870,7 +3870,7 @@ template<class _CharT, class _Traits, class _Allocator>
                    basic_string<_CharT, _Traits, _Allocator>::npos;
                    basic_string<_CharT, _Traits, _Allocator>::npos;
 
 
 template<class _CharT, class _Traits, class _Allocator>
 template<class _CharT, class _Traits, class _Allocator>
-struct _LIBCPP_TYPE_VIS_ONLY hash<basic_string<_CharT, _Traits, _Allocator> >
+struct _LIBCPP_TEMPLATE_VIS hash<basic_string<_CharT, _Traits, _Allocator> >
     : public unary_function<basic_string<_CharT, _Traits, _Allocator>, size_t>
     : public unary_function<basic_string<_CharT, _Traits, _Allocator>, size_t>
 {
 {
     size_t
     size_t

+ 2 - 2
include/string_view

@@ -177,7 +177,7 @@ namespace std {
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
 template<class _CharT, class _Traits = char_traits<_CharT> >
 template<class _CharT, class _Traits = char_traits<_CharT> >
-class _LIBCPP_TYPE_VIS_ONLY basic_string_view {
+class _LIBCPP_TEMPLATE_VIS basic_string_view {
 public:
 public:
 	// types
 	// types
 	typedef _Traits                                    traits_type;
 	typedef _Traits                                    traits_type;
@@ -735,7 +735,7 @@ typedef basic_string_view<wchar_t>  wstring_view;
 
 
 // [string.view.hash]
 // [string.view.hash]
 template<class _CharT, class _Traits>
 template<class _CharT, class _Traits>
-struct _LIBCPP_TYPE_VIS_ONLY hash<basic_string_view<_CharT, _Traits> >
+struct _LIBCPP_TEMPLATE_VIS hash<basic_string_view<_CharT, _Traits> >
     : public unary_function<basic_string_view<_CharT, _Traits>, size_t>
     : public unary_function<basic_string_view<_CharT, _Traits>, size_t>
 {
 {
     size_t operator()(const basic_string_view<_CharT, _Traits> __val) const _NOEXCEPT;
     size_t operator()(const basic_string_view<_CharT, _Traits> __val) const _NOEXCEPT;

+ 6 - 6
include/system_error

@@ -240,7 +240,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 // is_error_code_enum
 // is_error_code_enum
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY is_error_code_enum
+struct _LIBCPP_TEMPLATE_VIS is_error_code_enum
     : public false_type {};
     : public false_type {};
 
 
 #if _LIBCPP_STD_VER > 14
 #if _LIBCPP_STD_VER > 14
@@ -251,7 +251,7 @@ constexpr size_t is_error_code_enum_v = is_error_code_enum<_Tp>::value;
 // is_error_condition_enum
 // is_error_condition_enum
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY is_error_condition_enum
+struct _LIBCPP_TEMPLATE_VIS is_error_condition_enum
     : public false_type {};
     : public false_type {};
 
 
 #if _LIBCPP_STD_VER > 14
 #if _LIBCPP_STD_VER > 14
@@ -363,12 +363,12 @@ _LIBCPP_DECLARE_STRONG_ENUM(errc)
 _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(errc)
 _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(errc)
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY is_error_condition_enum<errc>
+struct _LIBCPP_TEMPLATE_VIS is_error_condition_enum<errc>
     : true_type { };
     : true_type { };
 
 
 #ifdef _LIBCPP_HAS_NO_STRONG_ENUMS
 #ifdef _LIBCPP_HAS_NO_STRONG_ENUMS
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY is_error_condition_enum<errc::__lx>
+struct _LIBCPP_TEMPLATE_VIS is_error_condition_enum<errc::__lx>
     : true_type { };
     : true_type { };
 #endif
 #endif
 
 
@@ -621,7 +621,7 @@ operator!=(const error_condition& __x, const error_condition& __y) _NOEXCEPT
 {return !(__x == __y);}
 {return !(__x == __y);}
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<error_code>
+struct _LIBCPP_TEMPLATE_VIS hash<error_code>
     : public unary_function<error_code, size_t>
     : public unary_function<error_code, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -632,7 +632,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<error_code>
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<error_condition>
+struct _LIBCPP_TEMPLATE_VIS hash<error_condition>
     : public unary_function<error_condition, size_t>
     : public unary_function<error_condition, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY

+ 3 - 3
include/thread

@@ -211,7 +211,7 @@ _LIBCPP_INLINE_VISIBILITY __thread_id get_id() _NOEXCEPT;
 
 
 template<> struct hash<__thread_id>;
 template<> struct hash<__thread_id>;
 
 
-class _LIBCPP_TYPE_VIS_ONLY __thread_id
+class _LIBCPP_TEMPLATE_VIS __thread_id
 {
 {
     // FIXME: pthread_t is a pointer on Darwin but a long on Linux.
     // FIXME: pthread_t is a pointer on Darwin but a long on Linux.
     // NULL is the no-thread value on Darwin.  Someone needs to check
     // NULL is the no-thread value on Darwin.  Someone needs to check
@@ -254,11 +254,11 @@ private:
 
 
     friend __thread_id this_thread::get_id() _NOEXCEPT;
     friend __thread_id this_thread::get_id() _NOEXCEPT;
     friend class _LIBCPP_TYPE_VIS thread;
     friend class _LIBCPP_TYPE_VIS thread;
-    friend struct _LIBCPP_TYPE_VIS_ONLY hash<__thread_id>;
+    friend struct _LIBCPP_TEMPLATE_VIS hash<__thread_id>;
 };
 };
 
 
 template<>
 template<>
-struct _LIBCPP_TYPE_VIS_ONLY hash<__thread_id>
+struct _LIBCPP_TEMPLATE_VIS hash<__thread_id>
     : public unary_function<__thread_id, size_t>
     : public unary_function<__thread_id, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY

+ 3 - 3
include/tuple

@@ -471,7 +471,7 @@ struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...>
 
 
 
 
 template <class ..._Tp>
 template <class ..._Tp>
-class _LIBCPP_TYPE_VIS_ONLY tuple
+class _LIBCPP_TEMPLATE_VIS tuple
 {
 {
     typedef __tuple_impl<typename __make_tuple_indices<sizeof...(_Tp)>::type, _Tp...> base;
     typedef __tuple_impl<typename __make_tuple_indices<sizeof...(_Tp)>::type, _Tp...> base;
 
 
@@ -908,7 +908,7 @@ public:
 };
 };
 
 
 template <>
 template <>
-class _LIBCPP_TYPE_VIS_ONLY tuple<>
+class _LIBCPP_TEMPLATE_VIS tuple<>
 {
 {
 public:
 public:
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
@@ -1340,7 +1340,7 @@ tuple_cat(_Tuple0&& __t0, _Tuples&&... __tpls)
 }
 }
 
 
 template <class ..._Tp, class _Alloc>
 template <class ..._Tp, class _Alloc>
-struct _LIBCPP_TYPE_VIS_ONLY uses_allocator<tuple<_Tp...>, _Alloc>
+struct _LIBCPP_TEMPLATE_VIS uses_allocator<tuple<_Tp...>, _Alloc>
     : true_type {};
     : true_type {};
 
 
 #endif // _LIBCPP_HAS_NO_VARIADICS
 #endif // _LIBCPP_HAS_NO_VARIADICS

File diff ditekan karena terlalu besar
+ 143 - 143
include/type_traits


+ 3 - 3
include/typeindex

@@ -55,7 +55,7 @@ struct hash<type_index>
 
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
-class _LIBCPP_TYPE_VIS_ONLY type_index
+class _LIBCPP_TEMPLATE_VIS type_index
 {
 {
     const type_info* __t_;
     const type_info* __t_;
 public:
 public:
@@ -87,10 +87,10 @@ public:
     const char* name() const _NOEXCEPT {return __t_->name();}
     const char* name() const _NOEXCEPT {return __t_->name();}
 };
 };
 
 
-template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY hash;
+template <class _Tp> struct _LIBCPP_TEMPLATE_VIS hash;
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<type_index>
+struct _LIBCPP_TEMPLATE_VIS hash<type_index>
     : public unary_function<type_index, size_t>
     : public unary_function<type_index, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY

+ 13 - 13
include/unordered_map

@@ -641,7 +641,7 @@ private:
 #endif
 #endif
 
 
 template <class _HashIterator>
 template <class _HashIterator>
-class _LIBCPP_TYPE_VIS_ONLY __hash_map_iterator
+class _LIBCPP_TEMPLATE_VIS __hash_map_iterator
 {
 {
     _HashIterator __i_;
     _HashIterator __i_;
 
 
@@ -682,15 +682,15 @@ public:
         bool operator!=(const __hash_map_iterator& __x, const __hash_map_iterator& __y)
         bool operator!=(const __hash_map_iterator& __x, const __hash_map_iterator& __y)
         {return __x.__i_ != __y.__i_;}
         {return __x.__i_ != __y.__i_;}
 
 
-    template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_map;
-    template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_multimap;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator;
+    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_map;
+    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_multimap;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator;
 };
 };
 
 
 template <class _HashIterator>
 template <class _HashIterator>
-class _LIBCPP_TYPE_VIS_ONLY __hash_map_const_iterator
+class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator
 {
 {
     _HashIterator __i_;
     _HashIterator __i_;
 
 
@@ -736,15 +736,15 @@ public:
         bool operator!=(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y)
         bool operator!=(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y)
         {return __x.__i_ != __y.__i_;}
         {return __x.__i_ != __y.__i_;}
 
 
-    template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_map;
-    template <class, class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY unordered_multimap;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_iterator;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY __hash_const_local_iterator;
+    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_map;
+    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_multimap;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;
 };
 };
 
 
 template <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,
 template <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,
           class _Alloc = allocator<pair<const _Key, _Tp> > >
           class _Alloc = allocator<pair<const _Key, _Tp> > >
-class _LIBCPP_TYPE_VIS_ONLY unordered_map
+class _LIBCPP_TEMPLATE_VIS unordered_map
 {
 {
 public:
 public:
     // types
     // types
@@ -1513,7 +1513,7 @@ operator!=(const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
 
 
 template <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,
 template <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,
           class _Alloc = allocator<pair<const _Key, _Tp> > >
           class _Alloc = allocator<pair<const _Key, _Tp> > >
-class _LIBCPP_TYPE_VIS_ONLY unordered_multimap
+class _LIBCPP_TEMPLATE_VIS unordered_multimap
 {
 {
 public:
 public:
     // types
     // types

+ 2 - 2
include/unordered_set

@@ -333,7 +333,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 
 
 template <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,
 template <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,
           class _Alloc = allocator<_Value> >
           class _Alloc = allocator<_Value> >
-class _LIBCPP_TYPE_VIS_ONLY unordered_set
+class _LIBCPP_TEMPLATE_VIS unordered_set
 {
 {
 public:
 public:
     // types
     // types
@@ -873,7 +873,7 @@ operator!=(const unordered_set<_Value, _Hash, _Pred, _Alloc>& __x,
 
 
 template <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,
 template <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,
           class _Alloc = allocator<_Value> >
           class _Alloc = allocator<_Value> >
-class _LIBCPP_TYPE_VIS_ONLY unordered_multiset
+class _LIBCPP_TEMPLATE_VIS unordered_multiset
 {
 {
 public:
 public:
     // types
     // types

+ 6 - 6
include/utility

@@ -289,7 +289,7 @@ template <class _Tp> constexpr add_const_t<_Tp>& as_const(_Tp& __t) noexcept { r
 template <class _Tp>                        void as_const(const _Tp&&) = delete;
 template <class _Tp>                        void as_const(const _Tp&&) = delete;
 #endif
 #endif
 
 
-struct _LIBCPP_TYPE_VIS_ONLY piecewise_construct_t { };
+struct _LIBCPP_TEMPLATE_VIS piecewise_construct_t { };
 #if defined(_LIBCPP_HAS_NO_CONSTEXPR) || defined(_LIBCPP_BUILDING_UTILITY)
 #if defined(_LIBCPP_HAS_NO_CONSTEXPR) || defined(_LIBCPP_BUILDING_UTILITY)
 extern const piecewise_construct_t piecewise_construct;// = piecewise_construct_t();
 extern const piecewise_construct_t piecewise_construct;// = piecewise_construct_t();
 #else
 #else
@@ -306,7 +306,7 @@ struct __non_trivially_copyable_base {
 #endif
 #endif
 
 
 template <class _T1, class _T2>
 template <class _T1, class _T2>
-struct _LIBCPP_TYPE_VIS_ONLY pair
+struct _LIBCPP_TEMPLATE_VIS pair
 #if defined(_LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR)
 #if defined(_LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR)
 : private __non_trivially_copyable_base
 : private __non_trivially_copyable_base
 #endif
 #endif
@@ -648,18 +648,18 @@ make_pair(_T1 __x, _T2 __y)
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 
 template <class _T1, class _T2>
 template <class _T1, class _T2>
-  class _LIBCPP_TYPE_VIS_ONLY tuple_size<pair<_T1, _T2> >
+  class _LIBCPP_TEMPLATE_VIS tuple_size<pair<_T1, _T2> >
     : public integral_constant<size_t, 2> {};
     : public integral_constant<size_t, 2> {};
 
 
 template <class _T1, class _T2>
 template <class _T1, class _T2>
-class _LIBCPP_TYPE_VIS_ONLY tuple_element<0, pair<_T1, _T2> >
+class _LIBCPP_TEMPLATE_VIS tuple_element<0, pair<_T1, _T2> >
 {
 {
 public:
 public:
     typedef _T1 type;
     typedef _T1 type;
 };
 };
 
 
 template <class _T1, class _T2>
 template <class _T1, class _T2>
-class _LIBCPP_TYPE_VIS_ONLY tuple_element<1, pair<_T1, _T2> >
+class _LIBCPP_TEMPLATE_VIS tuple_element<1, pair<_T1, _T2> >
 {
 {
 public:
 public:
     typedef _T2 type;
     typedef _T2 type;
@@ -829,7 +829,7 @@ constexpr _T1 const && get(pair<_T2, _T1> const&& __p) _NOEXCEPT
 #if _LIBCPP_STD_VER > 11
 #if _LIBCPP_STD_VER > 11
 
 
 template<class _Tp, _Tp... _Ip>
 template<class _Tp, _Tp... _Ip>
-struct _LIBCPP_TYPE_VIS_ONLY integer_sequence
+struct _LIBCPP_TEMPLATE_VIS integer_sequence
 {
 {
     typedef _Tp value_type;
     typedef _Tp value_type;
     static_assert( is_integral<_Tp>::value,
     static_assert( is_integral<_Tp>::value,

+ 18 - 18
include/valarray

@@ -356,9 +356,9 @@ template <class T> unspecified2 end(const valarray<T>& v);
 
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 
-template<class _Tp> class _LIBCPP_TYPE_VIS_ONLY valarray;
+template<class _Tp> class _LIBCPP_TEMPLATE_VIS valarray;
 
 
-class _LIBCPP_TYPE_VIS_ONLY slice
+class _LIBCPP_TEMPLATE_VIS slice
 {
 {
     size_t __start_;
     size_t __start_;
     size_t __size_;
     size_t __size_;
@@ -383,11 +383,11 @@ public:
     _LIBCPP_INLINE_VISIBILITY size_t stride() const {return __stride_;}
     _LIBCPP_INLINE_VISIBILITY size_t stride() const {return __stride_;}
 };
 };
 
 
-template <class _Tp> class _LIBCPP_TYPE_VIS_ONLY slice_array;
+template <class _Tp> class _LIBCPP_TEMPLATE_VIS slice_array;
 class _LIBCPP_TYPE_VIS gslice;
 class _LIBCPP_TYPE_VIS gslice;
-template <class _Tp> class _LIBCPP_TYPE_VIS_ONLY gslice_array;
-template <class _Tp> class _LIBCPP_TYPE_VIS_ONLY mask_array;
-template <class _Tp> class _LIBCPP_TYPE_VIS_ONLY indirect_array;
+template <class _Tp> class _LIBCPP_TEMPLATE_VIS gslice_array;
+template <class _Tp> class _LIBCPP_TEMPLATE_VIS mask_array;
+template <class _Tp> class _LIBCPP_TEMPLATE_VIS indirect_array;
 
 
 template <class _Tp>
 template <class _Tp>
 _LIBCPP_INLINE_VISIBILITY
 _LIBCPP_INLINE_VISIBILITY
@@ -673,7 +673,7 @@ public:
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
     size_t size() const {return __size_;}
     size_t size() const {return __size_;}
 
 
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY valarray;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS valarray;
 };
 };
 
 
 template <class _ValExpr>
 template <class _ValExpr>
@@ -788,7 +788,7 @@ template<class _Tp>
 struct __is_val_expr<valarray<_Tp> > : true_type {};
 struct __is_val_expr<valarray<_Tp> > : true_type {};
 
 
 template<class _Tp>
 template<class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY valarray
+class _LIBCPP_TEMPLATE_VIS valarray
 {
 {
 public:
 public:
     typedef _Tp value_type;
     typedef _Tp value_type;
@@ -1028,12 +1028,12 @@ public:
     void     resize(size_t __n, value_type __x = value_type());
     void     resize(size_t __n, value_type __x = value_type());
 
 
 private:
 private:
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY valarray;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY slice_array;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY gslice_array;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY mask_array;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS valarray;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS slice_array;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS gslice_array;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS mask_array;
     template <class> friend class __mask_expr;
     template <class> friend class __mask_expr;
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY indirect_array;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS indirect_array;
     template <class> friend class __indirect_expr;
     template <class> friend class __indirect_expr;
     template <class> friend class __val_expr;
     template <class> friend class __val_expr;
 
 
@@ -1147,7 +1147,7 @@ struct _BinaryOp<_Op, valarray<_Tp>, valarray<_Tp> >
 // slice_array
 // slice_array
 
 
 template <class _Tp>
 template <class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY slice_array
+class _LIBCPP_TEMPLATE_VIS slice_array
 {
 {
 public:
 public:
     typedef _Tp value_type;
     typedef _Tp value_type;
@@ -1531,7 +1531,7 @@ private:
 // gslice_array
 // gslice_array
 
 
 template <class _Tp>
 template <class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY gslice_array
+class _LIBCPP_TEMPLATE_VIS gslice_array
 {
 {
 public:
 public:
     typedef _Tp value_type;
     typedef _Tp value_type;
@@ -1869,7 +1869,7 @@ gslice_array<_Tp>::operator=(const value_type& __x) const
 // mask_array
 // mask_array
 
 
 template <class _Tp>
 template <class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY mask_array
+class _LIBCPP_TEMPLATE_VIS mask_array
 {
 {
 public:
 public:
     typedef _Tp value_type;
     typedef _Tp value_type;
@@ -2227,7 +2227,7 @@ public:
 // indirect_array
 // indirect_array
 
 
 template <class _Tp>
 template <class _Tp>
-class _LIBCPP_TYPE_VIS_ONLY indirect_array
+class _LIBCPP_TEMPLATE_VIS indirect_array
 {
 {
 public:
 public:
     typedef _Tp value_type;
     typedef _Tp value_type;
@@ -2591,7 +2591,7 @@ public:
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY
     size_t size() const {return __1d_.size();}
     size_t size() const {return __1d_.size();}
 
 
-    template <class> friend class _LIBCPP_TYPE_VIS_ONLY valarray;
+    template <class> friend class _LIBCPP_TEMPLATE_VIS valarray;
 };
 };
 
 
 template<class _ValExpr>
 template<class _ValExpr>

+ 33 - 33
include/variant

@@ -236,48 +236,48 @@ void __throw_bad_variant_access() {
 }
 }
 
 
 template <class... _Types>
 template <class... _Types>
-class _LIBCPP_TYPE_VIS_ONLY variant;
+class _LIBCPP_TEMPLATE_VIS variant;
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY variant_size;
+struct _LIBCPP_TEMPLATE_VIS variant_size;
 
 
 template <class _Tp>
 template <class _Tp>
 constexpr size_t variant_size_v = variant_size<_Tp>::value;
 constexpr size_t variant_size_v = variant_size<_Tp>::value;
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY variant_size<const _Tp> : variant_size<_Tp> {};
+struct _LIBCPP_TEMPLATE_VIS variant_size<const _Tp> : variant_size<_Tp> {};
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY variant_size<volatile _Tp> : variant_size<_Tp> {};
+struct _LIBCPP_TEMPLATE_VIS variant_size<volatile _Tp> : variant_size<_Tp> {};
 
 
 template <class _Tp>
 template <class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY variant_size<const volatile _Tp>
+struct _LIBCPP_TEMPLATE_VIS variant_size<const volatile _Tp>
     : variant_size<_Tp> {};
     : variant_size<_Tp> {};
 
 
 template <class... _Types>
 template <class... _Types>
-struct _LIBCPP_TYPE_VIS_ONLY variant_size<variant<_Types...>>
+struct _LIBCPP_TEMPLATE_VIS variant_size<variant<_Types...>>
     : integral_constant<size_t, sizeof...(_Types)> {};
     : integral_constant<size_t, sizeof...(_Types)> {};
 
 
 template <size_t _Ip, class _Tp>
 template <size_t _Ip, class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY variant_alternative;
+struct _LIBCPP_TEMPLATE_VIS variant_alternative;
 
 
 template <size_t _Ip, class _Tp>
 template <size_t _Ip, class _Tp>
 using variant_alternative_t = typename variant_alternative<_Ip, _Tp>::type;
 using variant_alternative_t = typename variant_alternative<_Ip, _Tp>::type;
 
 
 template <size_t _Ip, class _Tp>
 template <size_t _Ip, class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY variant_alternative<_Ip, const _Tp>
+struct _LIBCPP_TEMPLATE_VIS variant_alternative<_Ip, const _Tp>
     : add_const<variant_alternative_t<_Ip, _Tp>> {};
     : add_const<variant_alternative_t<_Ip, _Tp>> {};
 
 
 template <size_t _Ip, class _Tp>
 template <size_t _Ip, class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY variant_alternative<_Ip, volatile _Tp>
+struct _LIBCPP_TEMPLATE_VIS variant_alternative<_Ip, volatile _Tp>
     : add_volatile<variant_alternative_t<_Ip, _Tp>> {};
     : add_volatile<variant_alternative_t<_Ip, _Tp>> {};
 
 
 template <size_t _Ip, class _Tp>
 template <size_t _Ip, class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY variant_alternative<_Ip, const volatile _Tp>
+struct _LIBCPP_TEMPLATE_VIS variant_alternative<_Ip, const volatile _Tp>
     : add_cv<variant_alternative_t<_Ip, _Tp>> {};
     : add_cv<variant_alternative_t<_Ip, _Tp>> {};
 
 
 template <size_t _Ip, class... _Types>
 template <size_t _Ip, class... _Types>
-struct _LIBCPP_TYPE_VIS_ONLY variant_alternative<_Ip, variant<_Types...>> {
+struct _LIBCPP_TEMPLATE_VIS variant_alternative<_Ip, variant<_Types...>> {
   static_assert(_Ip < sizeof...(_Types));
   static_assert(_Ip < sizeof...(_Types));
   using type = __type_pack_element<_Ip, _Types...>;
   using type = __type_pack_element<_Ip, _Types...>;
 };
 };
@@ -591,7 +591,7 @@ private:
 } // namespace __visitation
 } // namespace __visitation
 
 
 template <size_t _Index, class _Tp>
 template <size_t _Index, class _Tp>
-struct _LIBCPP_TYPE_VIS_ONLY __alt {
+struct _LIBCPP_TEMPLATE_VIS __alt {
   using __value_type = _Tp;
   using __value_type = _Tp;
 
 
   template <class... _Args>
   template <class... _Args>
@@ -603,14 +603,14 @@ struct _LIBCPP_TYPE_VIS_ONLY __alt {
 };
 };
 
 
 template <_Trait _DestructibleTrait, size_t _Index, class... _Types>
 template <_Trait _DestructibleTrait, size_t _Index, class... _Types>
-union _LIBCPP_TYPE_VIS_ONLY __union;
+union _LIBCPP_TEMPLATE_VIS __union;
 
 
 template <_Trait _DestructibleTrait, size_t _Index>
 template <_Trait _DestructibleTrait, size_t _Index>
-union _LIBCPP_TYPE_VIS_ONLY __union<_DestructibleTrait, _Index> {};
+union _LIBCPP_TEMPLATE_VIS __union<_DestructibleTrait, _Index> {};
 
 
 #define _LIBCPP_VARIANT_UNION(destructible_trait, destructor)                  \
 #define _LIBCPP_VARIANT_UNION(destructible_trait, destructor)                  \
   template <size_t _Index, class _Tp, class... _Types>                         \
   template <size_t _Index, class _Tp, class... _Types>                         \
-  union _LIBCPP_TYPE_VIS_ONLY __union<destructible_trait,                      \
+  union _LIBCPP_TEMPLATE_VIS __union<destructible_trait,                      \
                                       _Index,                                  \
                                       _Index,                                  \
                                       _Tp,                                     \
                                       _Tp,                                     \
                                       _Types...> {                             \
                                       _Types...> {                             \
@@ -651,7 +651,7 @@ _LIBCPP_VARIANT_UNION(_Trait::_Unavailable, ~__union() = delete;);
 #undef _LIBCPP_VARIANT_UNION
 #undef _LIBCPP_VARIANT_UNION
 
 
 template <_Trait _DestructibleTrait, class... _Types>
 template <_Trait _DestructibleTrait, class... _Types>
-class _LIBCPP_TYPE_VIS_ONLY __base {
+class _LIBCPP_TEMPLATE_VIS __base {
 public:
 public:
   inline _LIBCPP_INLINE_VISIBILITY
   inline _LIBCPP_INLINE_VISIBILITY
   explicit constexpr __base(__valueless_t tag) noexcept
   explicit constexpr __base(__valueless_t tag) noexcept
@@ -698,11 +698,11 @@ protected:
 };
 };
 
 
 template <class _Traits, _Trait = _Traits::__destructible_trait>
 template <class _Traits, _Trait = _Traits::__destructible_trait>
-class _LIBCPP_TYPE_VIS_ONLY __destructor;
+class _LIBCPP_TEMPLATE_VIS __destructor;
 
 
 #define _LIBCPP_VARIANT_DESTRUCTOR(destructible_trait, destructor, destroy)    \
 #define _LIBCPP_VARIANT_DESTRUCTOR(destructible_trait, destructor, destroy)    \
   template <class... _Types>                                                   \
   template <class... _Types>                                                   \
-  class _LIBCPP_TYPE_VIS_ONLY __destructor<__traits<_Types...>,                \
+  class _LIBCPP_TEMPLATE_VIS __destructor<__traits<_Types...>,                \
                                            destructible_trait>                 \
                                            destructible_trait>                 \
       : public __base<destructible_trait, _Types...> {                         \
       : public __base<destructible_trait, _Types...> {                         \
     using __base_type = __base<destructible_trait, _Types...>;                 \
     using __base_type = __base<destructible_trait, _Types...>;                 \
@@ -750,7 +750,7 @@ _LIBCPP_VARIANT_DESTRUCTOR(
 #undef _LIBCPP_VARIANT_DESTRUCTOR
 #undef _LIBCPP_VARIANT_DESTRUCTOR
 
 
 template <class _Traits>
 template <class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY __constructor : public __destructor<_Traits> {
+class _LIBCPP_TEMPLATE_VIS __constructor : public __destructor<_Traits> {
   using __base_type = __destructor<_Traits>;
   using __base_type = __destructor<_Traits>;
 
 
 public:
 public:
@@ -784,12 +784,12 @@ protected:
 };
 };
 
 
 template <class _Traits, _Trait = _Traits::__move_constructible_trait>
 template <class _Traits, _Trait = _Traits::__move_constructible_trait>
-class _LIBCPP_TYPE_VIS_ONLY __move_constructor;
+class _LIBCPP_TEMPLATE_VIS __move_constructor;
 
 
 #define _LIBCPP_VARIANT_MOVE_CONSTRUCTOR(move_constructible_trait,             \
 #define _LIBCPP_VARIANT_MOVE_CONSTRUCTOR(move_constructible_trait,             \
                                          move_constructor)                     \
                                          move_constructor)                     \
   template <class... _Types>                                                   \
   template <class... _Types>                                                   \
-  class _LIBCPP_TYPE_VIS_ONLY __move_constructor<__traits<_Types...>,          \
+  class _LIBCPP_TEMPLATE_VIS __move_constructor<__traits<_Types...>,          \
                                                  move_constructible_trait>     \
                                                  move_constructible_trait>     \
       : public __constructor<__traits<_Types...>> {                            \
       : public __constructor<__traits<_Types...>> {                            \
     using __base_type = __constructor<__traits<_Types...>>;                    \
     using __base_type = __constructor<__traits<_Types...>>;                    \
@@ -824,12 +824,12 @@ _LIBCPP_VARIANT_MOVE_CONSTRUCTOR(
 #undef _LIBCPP_VARIANT_MOVE_CONSTRUCTOR
 #undef _LIBCPP_VARIANT_MOVE_CONSTRUCTOR
 
 
 template <class _Traits, _Trait = _Traits::__copy_constructible_trait>
 template <class _Traits, _Trait = _Traits::__copy_constructible_trait>
-class _LIBCPP_TYPE_VIS_ONLY __copy_constructor;
+class _LIBCPP_TEMPLATE_VIS __copy_constructor;
 
 
 #define _LIBCPP_VARIANT_COPY_CONSTRUCTOR(copy_constructible_trait,             \
 #define _LIBCPP_VARIANT_COPY_CONSTRUCTOR(copy_constructible_trait,             \
                                          copy_constructor)                     \
                                          copy_constructor)                     \
   template <class... _Types>                                                   \
   template <class... _Types>                                                   \
-  class _LIBCPP_TYPE_VIS_ONLY __copy_constructor<__traits<_Types...>,          \
+  class _LIBCPP_TEMPLATE_VIS __copy_constructor<__traits<_Types...>,          \
                                                  copy_constructible_trait>     \
                                                  copy_constructible_trait>     \
       : public __move_constructor<__traits<_Types...>> {                       \
       : public __move_constructor<__traits<_Types...>> {                       \
     using __base_type = __move_constructor<__traits<_Types...>>;               \
     using __base_type = __move_constructor<__traits<_Types...>>;               \
@@ -863,7 +863,7 @@ _LIBCPP_VARIANT_COPY_CONSTRUCTOR(
 #undef _LIBCPP_VARIANT_COPY_CONSTRUCTOR
 #undef _LIBCPP_VARIANT_COPY_CONSTRUCTOR
 
 
 template <class _Traits>
 template <class _Traits>
-class _LIBCPP_TYPE_VIS_ONLY __assignment : public __copy_constructor<_Traits> {
+class _LIBCPP_TEMPLATE_VIS __assignment : public __copy_constructor<_Traits> {
   using __base_type = __copy_constructor<_Traits>;
   using __base_type = __copy_constructor<_Traits>;
 
 
 public:
 public:
@@ -924,12 +924,12 @@ protected:
 };
 };
 
 
 template <class _Traits, _Trait = _Traits::__move_assignable_trait>
 template <class _Traits, _Trait = _Traits::__move_assignable_trait>
-class _LIBCPP_TYPE_VIS_ONLY __move_assignment;
+class _LIBCPP_TEMPLATE_VIS __move_assignment;
 
 
 #define _LIBCPP_VARIANT_MOVE_ASSIGNMENT(move_assignable_trait,                 \
 #define _LIBCPP_VARIANT_MOVE_ASSIGNMENT(move_assignable_trait,                 \
                                         move_assignment)                       \
                                         move_assignment)                       \
   template <class... _Types>                                                   \
   template <class... _Types>                                                   \
-  class _LIBCPP_TYPE_VIS_ONLY __move_assignment<__traits<_Types...>,           \
+  class _LIBCPP_TEMPLATE_VIS __move_assignment<__traits<_Types...>,           \
                                                 move_assignable_trait>         \
                                                 move_assignable_trait>         \
       : public __assignment<__traits<_Types...>> {                             \
       : public __assignment<__traits<_Types...>> {                             \
     using __base_type = __assignment<__traits<_Types...>>;                     \
     using __base_type = __assignment<__traits<_Types...>>;                     \
@@ -965,12 +965,12 @@ _LIBCPP_VARIANT_MOVE_ASSIGNMENT(
 #undef _LIBCPP_VARIANT_MOVE_ASSIGNMENT
 #undef _LIBCPP_VARIANT_MOVE_ASSIGNMENT
 
 
 template <class _Traits, _Trait = _Traits::__copy_assignable_trait>
 template <class _Traits, _Trait = _Traits::__copy_assignable_trait>
-class _LIBCPP_TYPE_VIS_ONLY __copy_assignment;
+class _LIBCPP_TEMPLATE_VIS __copy_assignment;
 
 
 #define _LIBCPP_VARIANT_COPY_ASSIGNMENT(copy_assignable_trait,                 \
 #define _LIBCPP_VARIANT_COPY_ASSIGNMENT(copy_assignable_trait,                 \
                                         copy_assignment)                       \
                                         copy_assignment)                       \
   template <class... _Types>                                                   \
   template <class... _Types>                                                   \
-  class _LIBCPP_TYPE_VIS_ONLY __copy_assignment<__traits<_Types...>,           \
+  class _LIBCPP_TEMPLATE_VIS __copy_assignment<__traits<_Types...>,           \
                                                 copy_assignable_trait>         \
                                                 copy_assignable_trait>         \
       : public __move_assignment<__traits<_Types...>> {                        \
       : public __move_assignment<__traits<_Types...>> {                        \
     using __base_type = __move_assignment<__traits<_Types...>>;                \
     using __base_type = __move_assignment<__traits<_Types...>>;                \
@@ -1004,7 +1004,7 @@ _LIBCPP_VARIANT_COPY_ASSIGNMENT(
 #undef _LIBCPP_VARIANT_COPY_ASSIGNMENT
 #undef _LIBCPP_VARIANT_COPY_ASSIGNMENT
 
 
 template <class... _Types>
 template <class... _Types>
-class _LIBCPP_TYPE_VIS_ONLY __impl
+class _LIBCPP_TEMPLATE_VIS __impl
     : public __copy_assignment<__traits<_Types...>> {
     : public __copy_assignment<__traits<_Types...>> {
   using __base_type = __copy_assignment<__traits<_Types...>>;
   using __base_type = __copy_assignment<__traits<_Types...>>;
 
 
@@ -1085,7 +1085,7 @@ using __best_match_t = typename result_of_t<__overload<_Types...>(_Tp&&)>::type;
 } // __variant_detail
 } // __variant_detail
 
 
 template <class... _Types>
 template <class... _Types>
-class _LIBCPP_TYPE_VIS_ONLY variant
+class _LIBCPP_TEMPLATE_VIS variant
     : private __sfinae_ctor_base<
     : private __sfinae_ctor_base<
           __all<is_copy_constructible_v<_Types>...>::value,
           __all<is_copy_constructible_v<_Types>...>::value,
           __all<is_move_constructible_v<_Types>...>::value>,
           __all<is_move_constructible_v<_Types>...>::value>,
@@ -1500,7 +1500,7 @@ constexpr decltype(auto) visit(_Visitor&& __visitor, _Vs&&... __vs) {
                                   _VSTD::forward<_Vs>(__vs)...);
                                   _VSTD::forward<_Vs>(__vs)...);
 }
 }
 
 
-struct _LIBCPP_TYPE_VIS_ONLY monostate {};
+struct _LIBCPP_TEMPLATE_VIS monostate {};
 
 
 inline _LIBCPP_INLINE_VISIBILITY
 inline _LIBCPP_INLINE_VISIBILITY
 constexpr bool operator<(monostate, monostate) noexcept { return false; }
 constexpr bool operator<(monostate, monostate) noexcept { return false; }
@@ -1529,7 +1529,7 @@ auto swap(variant<_Types...>& __lhs,
 }
 }
 
 
 template <class... _Types>
 template <class... _Types>
-struct _LIBCPP_TYPE_VIS_ONLY hash<variant<_Types...>> {
+struct _LIBCPP_TEMPLATE_VIS hash<variant<_Types...>> {
   using argument_type = variant<_Types...>;
   using argument_type = variant<_Types...>;
   using result_type = size_t;
   using result_type = size_t;
 
 
@@ -1551,7 +1551,7 @@ struct _LIBCPP_TYPE_VIS_ONLY hash<variant<_Types...>> {
 };
 };
 
 
 template <>
 template <>
-struct _LIBCPP_TYPE_VIS_ONLY hash<monostate> {
+struct _LIBCPP_TEMPLATE_VIS hash<monostate> {
   using argument_type = monostate;
   using argument_type = monostate;
   using result_type = size_t;
   using result_type = size_t;
 
 

+ 4 - 4
include/vector

@@ -447,7 +447,7 @@ __vector_base<_Tp, _Allocator>::~__vector_base()
 }
 }
 
 
 template <class _Tp, class _Allocator /* = allocator<_Tp> */>
 template <class _Tp, class _Allocator /* = allocator<_Tp> */>
-class _LIBCPP_TYPE_VIS_ONLY vector
+class _LIBCPP_TEMPLATE_VIS vector
     : private __vector_base<_Tp, _Allocator>
     : private __vector_base<_Tp, _Allocator>
 {
 {
 private:
 private:
@@ -2133,7 +2133,7 @@ struct __has_storage_type<vector<bool, _Allocator> >
 };
 };
 
 
 template <class _Allocator>
 template <class _Allocator>
-class _LIBCPP_TYPE_VIS_ONLY vector<bool, _Allocator>
+class _LIBCPP_TEMPLATE_VIS vector<bool, _Allocator>
     : private __vector_base_common<true>
     : private __vector_base_common<true>
 {
 {
 public:
 public:
@@ -2472,7 +2472,7 @@ private:
     friend class __bit_iterator<vector, false>;
     friend class __bit_iterator<vector, false>;
     friend class __bit_iterator<vector, true>;
     friend class __bit_iterator<vector, true>;
     friend struct __bit_array<vector>;
     friend struct __bit_array<vector>;
-    friend struct _LIBCPP_TYPE_VIS_ONLY hash<vector>;
+    friend struct _LIBCPP_TEMPLATE_VIS hash<vector>;
 };
 };
 
 
 template <class _Allocator>
 template <class _Allocator>
@@ -3275,7 +3275,7 @@ vector<bool, _Allocator>::__hash_code() const _NOEXCEPT
 }
 }
 
 
 template <class _Allocator>
 template <class _Allocator>
-struct _LIBCPP_TYPE_VIS_ONLY hash<vector<bool, _Allocator> >
+struct _LIBCPP_TEMPLATE_VIS hash<vector<bool, _Allocator> >
     : public unary_function<vector<bool, _Allocator>, size_t>
     : public unary_function<vector<bool, _Allocator>, size_t>
 {
 {
     _LIBCPP_INLINE_VISIBILITY
     _LIBCPP_INLINE_VISIBILITY

+ 3 - 3
src/experimental/memory_resource.cpp

@@ -23,7 +23,7 @@ _LIBCPP_BEGIN_NAMESPACE_LFTS_PMR
 
 
 // new_delete_resource()
 // new_delete_resource()
 
 
-class _LIBCPP_TYPE_VIS_ONLY __new_delete_memory_resource_imp
+class _LIBCPP_TYPE_VIS __new_delete_memory_resource_imp
     : public memory_resource
     : public memory_resource
 {
 {
 public:
 public:
@@ -42,7 +42,7 @@ protected:
 
 
 // null_memory_resource()
 // null_memory_resource()
 
 
-class _LIBCPP_TYPE_VIS_ONLY __null_memory_resource_imp
+class _LIBCPP_TYPE_VIS __null_memory_resource_imp
     : public memory_resource
     : public memory_resource
 {
 {
 public:
 public:
@@ -140,4 +140,4 @@ memory_resource * set_default_resource(memory_resource * __new_res) _NOEXCEPT
     return __default_memory_resource(true, __new_res);
     return __default_memory_resource(true, __new_res);
 }
 }
 
 
-_LIBCPP_END_NAMESPACE_LFTS_PMR
+_LIBCPP_END_NAMESPACE_LFTS_PMR

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini