Restrict optimized __pad_and_output implementation detail to desired releases.
authorHoward Hinnant <hhinnant@apple.com>
Wed, 14 Nov 2012 21:17:15 +0000 (21:17 +0000)
committerHoward Hinnant <hhinnant@apple.com>
Wed, 14 Nov 2012 21:17:15 +0000 (21:17 +0000)
llvm-svn: 167980

libcxx/include/iterator
libcxx/include/locale

index bcbf3ae..0be7a8b 100644 (file)
@@ -317,6 +317,10 @@ template <class T, size_t N> T* end(T (&array)[N]);
 #include <type_traits>
 #include <cstddef>
 #include <iosfwd>
+#if __APPLE__
+#include <Availability.h>
+#endif
+
 #ifdef _LIBCPP_DEBUG
 #include <cassert>
 #endif
@@ -882,6 +886,10 @@ public:
     _LIBCPP_INLINE_VISIBILITY ostreambuf_iterator& operator++(int) {return *this;}
     _LIBCPP_INLINE_VISIBILITY bool failed() const _NOEXCEPT {return __sbuf_ == 0;}
 
+#if !defined(__APPLE__) || \
+    (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \
+    (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)
+
     template <class _Ch, class _Tr>
     friend
     _LIBCPP_HIDDEN
@@ -889,6 +897,7 @@ public:
     __pad_and_output(ostreambuf_iterator<_Ch, _Tr> __s,
                      const _Ch* __ob, const _Ch* __op, const _Ch* __oe,
                      ios_base& __iob, _Ch __fl);
+#endif
 };
 
 template <class _Iter>
index 976c4cf..f04a36b 100644 (file)
@@ -192,6 +192,10 @@ template <class charT> class messages_byname;
 #include <nl_types.h>
 #endif  // !_WIN32
 
+#if __APPLE__
+#include <Availability.h>
+#endif
+
 #include <__undef_min_max>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
@@ -1587,6 +1591,10 @@ __pad_and_output(_OutputIterator __s,
     return __s;
 }
 
+#if !defined(__APPLE__) || \
+    (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \
+    (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)
+
 template <class _CharT, class _Traits>
 _LIBCPP_HIDDEN
 ostreambuf_iterator<_CharT, _Traits>
@@ -1633,6 +1641,8 @@ __pad_and_output(ostreambuf_iterator<_CharT, _Traits> __s,
     return __s;
 }
 
+#endif
+
 template <class _CharT, class _OutputIterator>
 _OutputIterator
 num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob,