From e3163f5ae3ffb50fb8eac67977f1f1b6c476a33e Mon Sep 17 00:00:00 2001 From: Howard Hinnant Date: Mon, 18 Jul 2011 15:51:59 +0000 Subject: [PATCH] http://llvm.org/bugs/show_bug.cgi?id=10390 llvm-svn: 135393 --- libcxx/include/bitset | 8 ++++++++ libcxx/include/memory | 6 ++++++ libcxx/include/string | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+) diff --git a/libcxx/include/bitset b/libcxx/include/bitset index f0e80279d5b2..4d9efd9391bb 100644 --- a/libcxx/include/bitset +++ b/libcxx/include/bitset @@ -1033,6 +1033,14 @@ struct _LIBCPP_VISIBLE hash > {return __bs.__hash_code();} }; +template +basic_istream<_CharT, _Traits>& +operator>>(basic_istream<_CharT, _Traits>& __is, bitset<_Size>& __x); + +template +basic_ostream<_CharT, _Traits>& +operator<<(basic_ostream<_CharT, _Traits>& __os, const bitset<_Size>& __x); + _LIBCPP_END_NAMESPACE_STD #endif // _LIBCPP_BITSET diff --git a/libcxx/include/memory b/libcxx/include/memory index 3a0064a91b34..1972d06f4d9f 100644 --- a/libcxx/include/memory +++ b/libcxx/include/memory @@ -595,6 +595,7 @@ void* align(size_t alignment, size_t size, void*& ptr, size_t& space); #include #include #include <__functional_base> +#include #if defined(_LIBCPP_NO_EXCEPTIONS) #include #endif @@ -4148,6 +4149,11 @@ struct _LIBCPP_VISIBLE hash > } }; +template +inline _LIBCPP_INLINE_VISIBILITY +basic_ostream<_CharT, _Traits>& +operator<<(basic_ostream<_CharT, _Traits>& __os, shared_ptr<_Y> const& __p); + //enum class struct _LIBCPP_VISIBLE pointer_safety { diff --git a/libcxx/include/string b/libcxx/include/string index 7d0d53a3d31c..3f2fe17484e9 100644 --- a/libcxx/include/string +++ b/libcxx/include/string @@ -3966,6 +3966,43 @@ hash >::operator()( return __r; } +template +basic_ostream<_CharT, _Traits>& +operator<<(basic_ostream<_CharT, _Traits>& __os, + const basic_string<_CharT, _Traits, _Allocator>& __str); + +template +basic_istream<_CharT, _Traits>& +operator>>(basic_istream<_CharT, _Traits>& __is, + basic_string<_CharT, _Traits, _Allocator>& __str); + +template +basic_istream<_CharT, _Traits>& +getline(basic_istream<_CharT, _Traits>& __is, + basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm); + +template +inline _LIBCPP_INLINE_VISIBILITY +basic_istream<_CharT, _Traits>& +getline(basic_istream<_CharT, _Traits>& __is, + basic_string<_CharT, _Traits, _Allocator>& __str); + +#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES + +template +inline _LIBCPP_INLINE_VISIBILITY +basic_istream<_CharT, _Traits>& +getline(basic_istream<_CharT, _Traits>&& __is, + basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm); + +template +inline _LIBCPP_INLINE_VISIBILITY +basic_istream<_CharT, _Traits>& +getline(basic_istream<_CharT, _Traits>&& __is, + basic_string<_CharT, _Traits, _Allocator>& __str); + +#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES + extern template class basic_string; extern template class basic_string;