$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r86062 - in trunk/boost: fusion/sequence/io/detail lambda/detail optional smart_ptr tuple
From: steveire_at_[hidden]
Date: 2013-09-30 11:56:52
Author: skelly
Date: 2013-09-30 11:56:52 EDT (Mon, 30 Sep 2013)
New Revision: 86062
URL: http://svn.boost.org/trac/boost/changeset/86062
Log:
Remove use of obsolete BOOST_NO_TEMPLATED_STREAMS macro.
It was only defined for no-longer-supported-gcc.
Text files modified: 
   trunk/boost/fusion/sequence/io/detail/manip.hpp           |    54 ---------                               
   trunk/boost/lambda/detail/operator_return_type_traits.hpp |    31 -----                                   
   trunk/boost/lambda/detail/operators.hpp                   |    18 ---                                     
   trunk/boost/optional/optional_io.hpp                      |    10 -                                       
   trunk/boost/smart_ptr/intrusive_ptr.hpp                   |     2                                         
   trunk/boost/smart_ptr/shared_ptr.hpp                      |     2                                         
   trunk/boost/tuple/tuple_io.hpp                            |   235 ----------------------------------------
   7 files changed, 2 insertions(+), 350 deletions(-)
Modified: trunk/boost/fusion/sequence/io/detail/manip.hpp
==============================================================================
--- trunk/boost/fusion/sequence/io/detail/manip.hpp	Mon Sep 30 11:56:04 2013	(r86061)
+++ trunk/boost/fusion/sequence/io/detail/manip.hpp	2013-09-30 11:56:52 EDT (Mon, 30 Sep 2013)	(r86062)
@@ -19,15 +19,11 @@
 #define FUSION_GET_CHAR_TYPE(T) typename T::char_type
 #define FUSION_GET_TRAITS_TYPE(T) typename T::traits_type
 
-#if defined (BOOST_NO_TEMPLATED_STREAMS)
-#define FUSION_STRING_OF_STREAM(Stream) std::string
-#else
 #define FUSION_STRING_OF_STREAM(Stream)                                         \
     std::basic_string<                                                          \
         FUSION_GET_CHAR_TYPE(Stream)                                            \
       , FUSION_GET_TRAITS_TYPE(Stream)                                          \
     >
-#endif
 
 //$$$ these should be part of the public API$$$
 //$$$ rename tuple_open, tuple_close and tuple_delimiter to 
@@ -154,55 +150,6 @@
 
     } // detail
 
-#if defined (BOOST_NO_TEMPLATED_STREAMS)
-
-#define STD_TUPLE_DEFINE_MANIPULATOR(name)                                      \
-    namespace detail                                                            \
-    {                                                                           \
-        struct name##_tag;                                                      \
-                                                                                \
-        struct name##_type                                                      \
-        {                                                                       \
-            typedef std::string string_type;                                    \
-            string_type data;                                                   \
-            name##_type(const string_type& d): data(d) {}                       \
-        };                                                                      \
-                                                                                \
-        template <typename Stream>                                              \
-        Stream& operator>>(Stream& s, const name##_type& m)                     \
-        {                                                                       \
-            string_ios_manip<name##_tag, Stream>(s).set(m.data);                \
-            return s;                                                           \
-        }                                                                       \
-                                                                                \
-        template <typename Stream>                                              \
-        Stream& operator<<(Stream& s, const name##_type& m)                     \
-        {                                                                       \
-            string_ios_manip<name##_tag, Stream>(s).set(m.data);                \
-            return s;                                                           \
-        }                                                                       \
-    }
-
-#define STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(name)                            \
-    inline detail::name##_type                                                  \
-    name(const std::string& s)                                                  \
-    {                                                                           \
-        return detail::name##_type(s);                                          \
-    }                                                                           \
-                                                                                \
-    inline detail::name##_type                                                  \
-    name(const char* s)                                                         \
-    {                                                                           \
-        return detail::name##_type(std::string(s));                             \
-    }                                                                           \
-                                                                                \
-    inline detail::name##_type                                                  \
-    name(char c)                                                                \
-    {                                                                           \
-        return detail::name##_type(std::string(1, c));                          \
-    }
-
-#else // defined(BOOST_NO_TEMPLATED_STREAMS)
 
 #if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
 
@@ -299,7 +246,6 @@
         }                                                                       \
     }                                                                           \
 
-#endif // defined(BOOST_NO_TEMPLATED_STREAMS)
 
     STD_TUPLE_DEFINE_MANIPULATOR(tuple_open)
     STD_TUPLE_DEFINE_MANIPULATOR(tuple_close)
Modified: trunk/boost/lambda/detail/operator_return_type_traits.hpp
==============================================================================
--- trunk/boost/lambda/detail/operator_return_type_traits.hpp	Mon Sep 30 11:56:04 2013	(r86061)
+++ trunk/boost/lambda/detail/operator_return_type_traits.hpp	2013-09-30 11:56:52 EDT (Mon, 30 Sep 2013)	(r86062)
@@ -536,36 +536,6 @@
 
 namespace detail {
 
-#ifdef BOOST_NO_TEMPLATED_STREAMS
-
-template<class A, class B>
-struct leftshift_type {
-
-  typedef typename detail::IF<
-    boost::is_convertible<
-      typename boost::remove_reference<A>::type*,
-      std::ostream*
-    >::value,
-    std::ostream&, 
-    typename detail::remove_reference_and_cv<A>::type
-  >::RET type;
-};
-
-template<class A, class B>
-struct rightshift_type {
-
-  typedef typename detail::IF<
-
-    boost::is_convertible<
-      typename boost::remove_reference<A>::type*,
-      std::istream*
-    >::value, 
-    std::istream&,
-    typename detail::remove_reference_and_cv<A>::type
-  >::RET type;
-};
-
-#else
 
 template <class T> struct get_ostream_type {
   typedef std::basic_ostream<typename T::char_type, 
@@ -602,7 +572,6 @@
 };
 
 
-#endif
 
 } // end detail
 
Modified: trunk/boost/lambda/detail/operators.hpp
==============================================================================
--- trunk/boost/lambda/detail/operators.hpp	Mon Sep 30 11:56:04 2013	(r86061)
+++ trunk/boost/lambda/detail/operators.hpp	2013-09-30 11:56:52 EDT (Mon, 30 Sep 2013)	(r86062)
@@ -161,23 +161,6 @@
 
 // Note that the overloading is const vs. non-const first argument
 
-#ifdef BOOST_NO_TEMPLATED_STREAMS
-template<class T> struct convert_ostream_to_ref_others_to_c_plain_by_default {
-  typedef typename detail::IF<
-                       boost::is_convertible<T*, std::ostream*>::value,
-                       T&,
-                       typename const_copy_argument <T>::type
-                     >::RET type;
-};
-
-template<class T> struct convert_istream_to_ref_others_to_c_plain_by_default {
-  typedef typename detail::IF<
-                       boost::is_convertible<T*, std::istream*>::value,
-                       T&,
-                       typename const_copy_argument <T>::type
-                     >::RET type;
-};
-#else
 
 template<class T> struct convert_ostream_to_ref_others_to_c_plain_by_default {
   typedef typename detail::IF<
@@ -198,7 +181,6 @@
                        typename const_copy_argument <T>::type
                      >::RET type;
 };
-#endif
 
 } // detail
 
Modified: trunk/boost/optional/optional_io.hpp
==============================================================================
--- trunk/boost/optional/optional_io.hpp	Mon Sep 30 11:56:04 2013	(r86061)
+++ trunk/boost/optional/optional_io.hpp	2013-09-30 11:56:52 EDT (Mon, 30 Sep 2013)	(r86062)
@@ -33,15 +33,10 @@
 namespace boost
 {
 
-#if defined (BOOST_NO_TEMPLATED_STREAMS)
-template<class T>
-inline std::ostream& operator<<(std::ostream& out, optional<T> const& v)
-#else
 template<class CharType, class CharTrait, class T>
 inline
 std::basic_ostream<CharType, CharTrait>&
 operator<<(std::basic_ostream<CharType, CharTrait>& out, optional<T> const& v)
-#endif
 {
   if ( out.good() )
   {
@@ -53,15 +48,10 @@
   return out;
 }
 
-#if defined (BOOST_NO_TEMPLATED_STREAMS)
-template<class T>
-inline std::istream& operator>>(std::istream& in, optional<T>& v)
-#else
 template<class CharType, class CharTrait, class T>
 inline
 std::basic_istream<CharType, CharTrait>&
 operator>>(std::basic_istream<CharType, CharTrait>& in, optional<T>& v)
-#endif
 {
   if (in.good())
   {
Modified: trunk/boost/smart_ptr/intrusive_ptr.hpp
==============================================================================
--- trunk/boost/smart_ptr/intrusive_ptr.hpp	Mon Sep 30 11:56:04 2013	(r86061)
+++ trunk/boost/smart_ptr/intrusive_ptr.hpp	2013-09-30 11:56:52 EDT (Mon, 30 Sep 2013)	(r86062)
@@ -279,7 +279,7 @@
 
 #if !defined(BOOST_NO_IOSTREAM)
 
-#if defined(BOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) &&  (__GNUC__ < 3) )
+#if ( defined(__GNUC__) &&  (__GNUC__ < 3) )
 
 template<class Y> std::ostream & operator<< (std::ostream & os, intrusive_ptr<Y> const & p)
 {
Modified: trunk/boost/smart_ptr/shared_ptr.hpp
==============================================================================
--- trunk/boost/smart_ptr/shared_ptr.hpp	Mon Sep 30 11:56:04 2013	(r86061)
+++ trunk/boost/smart_ptr/shared_ptr.hpp	2013-09-30 11:56:52 EDT (Mon, 30 Sep 2013)	(r86062)
@@ -836,7 +836,7 @@
 
 #if !defined(BOOST_NO_IOSTREAM)
 
-#if defined(BOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) &&  (__GNUC__ < 3) )
+#if ( defined(__GNUC__) &&  (__GNUC__ < 3) )
 
 template<class Y> std::ostream & operator<< (std::ostream & os, shared_ptr<Y> const & p)
 {
Modified: trunk/boost/tuple/tuple_io.hpp
==============================================================================
--- trunk/boost/tuple/tuple_io.hpp	Mon Sep 30 11:56:04 2013	(r86061)
+++ trunk/boost/tuple/tuple_io.hpp	2013-09-30 11:56:52 EDT (Mon, 30 Sep 2013)	(r86062)
@@ -13,21 +13,8 @@
 #ifndef BOOST_TUPLE_IO_HPP
 #define BOOST_TUPLE_IO_HPP
 
-
-// add to boost/config.hpp
-// for now
-# if defined __GNUC__
-#   if (__GNUC__ == 2 && __GNUC_MINOR__ <= 97) 
-#define BOOST_NO_TEMPLATED_STREAMS
-#endif
-#endif // __GNUC__
-
-#if defined BOOST_NO_TEMPLATED_STREAMS
-#include <iostream>
-#else 
 #include <istream>
 #include <ostream>
-#endif  
 
 #include <sstream>
 
@@ -76,25 +63,6 @@
 
 public:
 
-#if defined (BOOST_NO_TEMPLATED_STREAMS)
-   static char get_manipulator(std::ios& i, manipulator_type m) {
-     char c = static_cast<char>(i.iword(get_stream_index(m))); 
-     
-     // parentheses and space are the default manipulators
-     if (!c) {
-       switch(m) {
-         case detail::format_info::open : c = '('; break;
-         case detail::format_info::close : c = ')'; break;
-         case detail::format_info::delimiter : c = ' '; break;
-       }
-     }
-     return c;
-   }
-
-   static void set_manipulator(std::ios& i, manipulator_type m, char c) {
-      i.iword(get_stream_index(m)) = static_cast<long>(c);
-   }
-#else
    template<class CharType, class CharTrait>
    static CharType get_manipulator(std::basic_ios<CharType, CharTrait>& i, 
                                    manipulator_type m) {
@@ -124,7 +92,6 @@
      // convertible long.
       i.iword(get_stream_index(m)) = static_cast<long>(c);
    }
-#endif // BOOST_NO_TEMPLATED_STREAMS
 };
 
 } // end of namespace detail
@@ -138,11 +105,6 @@
                              const char c = 0)
      : mt(m), f_c(c) {}
   
-#if defined (BOOST_NO_TEMPLATED_STREAMS)
-  void set(std::ios &io) const {
-     detail::format_info::set_manipulator(io, mt, f_c);
-  }
-#else
 #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
    template<class CharType2, class CharTrait>
   void set(std::basic_ios<CharType2, CharTrait> &io) const {
@@ -154,23 +116,8 @@
      detail::format_info::set_manipulator(io, mt, f_c);
   }
 #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#endif // BOOST_NO_TEMPLATED_STREAMS
 };
 
-#if defined (BOOST_NO_TEMPLATED_STREAMS)
-inline std::ostream&
-operator<<(std::ostream& o, const tuple_manipulator<char>& m) {
-  m.set(o);
-  return o;
-}
-
-inline std::istream&
-operator>>(std::istream& i, const tuple_manipulator<char>& m) {
-  m.set(i);
-  return i;
-}
-
-#else
 
 template<class CharType, class CharTrait>
 inline std::basic_ostream<CharType, CharTrait>&
@@ -186,7 +133,6 @@
   return i;
 }
 
-#endif   // BOOST_NO_TEMPLATED_STREAMS
    
 template<class CharType>
 inline tuple_manipulator<CharType> set_open(const CharType c) {
@@ -217,54 +163,6 @@
 // Note: The order of the print functions is critical 
 // to let a conforming compiler  find and select the correct one.
 
-#if defined (BOOST_NO_TEMPLATED_STREAMS)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template<class T1>
-inline std::ostream& print(std::ostream& o, const cons<T1, null_type>& t) {
-  return o << t.head;
-}
-#endif // BOOST_NO_TEMPLATED_STREAMS
- 
-inline std::ostream& print(std::ostream& o, const null_type&) { return o; }
-
-template<class T1, class T2>
-inline std::ostream& 
-print(std::ostream& o, const cons<T1, T2>& t) {
-  
-  const char d = format_info::get_manipulator(o, format_info::delimiter);
-   
-  o << t.head;
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-  if (tuples::length<T2>::value == 0)
-    return o;
-#endif  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-  o << d;
-  
-  return print(o, t.tail );
-
-}
-
-template<class T>
-inline bool handle_width(std::ostream& o, const T& t) {
-    std::streamsize width = o.width();
-    if(width == 0) return false;
-
-    std::ostringstream ss;
-
-    ss.copyfmt(o);
-    ss.tie(0);
-    ss.width(0);
-
-    ss << t;
-    o << ss.str();
-
-    return true;
-}
-
-
-#else
 
 #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
 template<class CharType, class CharTrait, class T1>
@@ -315,47 +213,9 @@
     return true;
 }
 
-#endif  // BOOST_NO_TEMPLATED_STREAMS
 
 } // namespace detail
 
-#if defined (BOOST_NO_TEMPLATED_STREAMS)
-
-inline std::ostream& operator<<(std::ostream& o, const null_type& t) {
-  if (!o.good() ) return o;
-  if (detail::handle_width(o, t)) return o;
- 
-  const char l = 
-    detail::format_info::get_manipulator(o, detail::format_info::open);
-  const char r = 
-    detail::format_info::get_manipulator(o, detail::format_info::close);
-   
-  o << l;
-  o << r;
-
-  return o;
-}
-
-template<class T1, class T2>
-inline std::ostream& operator<<(std::ostream& o, const cons<T1, T2>& t) {
-  if (!o.good() ) return o;
-  if (detail::handle_width(o, t)) return o;
- 
-  const char l = 
-    detail::format_info::get_manipulator(o, detail::format_info::open);
-  const char r = 
-    detail::format_info::get_manipulator(o, detail::format_info::close);
-   
-  o << l;
-  
-  detail::print(o, t);  
-
-  o << r;
-
-  return o;
-}
-
-#else
 
 template<class CharType, class CharTrait>
 inline std::basic_ostream<CharType, CharTrait>& 
@@ -395,7 +255,6 @@
 
   return o;
 }
-#endif // BOOST_NO_TEMPLATED_STREAMS
 
    
 // -------------------------------------------------------------
@@ -403,99 +262,6 @@
 
 namespace detail {
 
-#if defined (BOOST_NO_TEMPLATED_STREAMS)
-
-inline std::istream& 
-extract_and_check_delimiter(
-  std::istream& is, format_info::manipulator_type del)
-{
-  const char d = format_info::get_manipulator(is, del);
-
-#if defined (BOOST_NO_STD_LOCALE)
-  const bool is_delimiter = !isspace(d);
-#else
-  const bool is_delimiter = (!std::isspace(d, is.getloc()) );            
-#endif
-
-  char c;
-  if (is_delimiter) { 
-    is >> c; 
-    if (is.good() && c!=d) {
-      is.setstate(std::ios::failbit);
-    } 
-  } else {
-    is >> std::ws;
-  }
-  return is;
-}
-
-
-// Note: The order of the read functions is critical to let a 
-// (conforming?) compiler find and select the correct one.
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template<class T1>
-inline  std::istream & 
-read (std::istream &is, cons<T1, null_type>& t1) {
-
-  if (!is.good()) return is;   
-   
-  return is >> t1.head ;
-}
-#else
-inline std::istream& read(std::istream& i, const null_type&) { return i; }
-#endif // !BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-   
-template<class T1, class T2>
-inline std::istream& 
-read(std::istream &is, cons<T1, T2>& t1) {
-
-  if (!is.good()) return is;
-   
-  is >> t1.head;
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-  if (tuples::length<T2>::value == 0)
-    return is;
-#endif  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-  extract_and_check_delimiter(is, format_info::delimiter);
-
-  return read(is, t1.tail);
-}
-
-} // end namespace detail
-
-inline std::istream& 
-operator>>(std::istream &is, null_type&) {
-
-  if (!is.good() ) return is;
-
-  detail::extract_and_check_delimiter(is, detail::format_info::open);
-  detail::extract_and_check_delimiter(is, detail::format_info::close);
-
-  return is;
-}
-
-
-template<class T1, class T2>
-inline std::istream& 
-operator>>(std::istream& is, cons<T1, T2>& t1) {
-
-  if (!is.good() ) return is;
-
-  detail::extract_and_check_delimiter(is, detail::format_info::open);
-                      
-  detail::read(is, t1);
-   
-  detail::extract_and_check_delimiter(is, detail::format_info::close);
-
-  return is;
-}
-
-
-
-#else
 
 template<class CharType, class CharTrait>
 inline std::basic_istream<CharType, CharTrait>& 
@@ -590,7 +356,6 @@
   return is;
 }
 
-#endif // BOOST_NO_TEMPLATED_STREAMS
 
 } // end of namespace tuples
 } // end of namespace boost