From ca71f6d0eef1ecc3b213dc64b5e2ab689ebb12f6 Mon Sep 17 00:00:00 2001
From: g0dil <g0dil@wiback.org>
Date: Mon, 23 Jul 2007 14:13:11 +0000
Subject: [PATCH] Socket: Add boost::disable_if conditions to
 ClientSocketHandle::read members for disambiguation

---
 Socket/ClientSocketHandle.cti | 8 ++++++--
 Socket/ClientSocketHandle.hh  | 8 ++++++--
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/Socket/ClientSocketHandle.cti b/Socket/ClientSocketHandle.cti
index b3c124045..96508800f 100644
--- a/Socket/ClientSocketHandle.cti
+++ b/Socket/ClientSocketHandle.cti
@@ -141,7 +141,9 @@ senf::ClientSocketHandle<Policy>::operator=(ClientSocketHandle<OtherPolicy> othe
 template <class Policy>
 template <class ForwardWritableRange>
 prefix_ typename boost::range_iterator<ForwardWritableRange>::type
-senf::ClientSocketHandle<Policy>::read(ForwardWritableRange const & range)
+senf::ClientSocketHandle<Policy>::
+read(ForwardWritableRange const & range,
+     typename boost::disable_if< boost::is_convertible<ForwardWritableRange,unsigned> >::type *)
 {
     return detail::ReadRange< 
         ClientSocketHandle<Policy>, 
@@ -155,7 +157,9 @@ senf::ClientSocketHandle<Policy>::read(ForwardWritableRange const & range)
 template <class Policy>
 template <class ForwardWritableRange>
 prefix_ typename boost::range_iterator<ForwardWritableRange>::type
-senf::ClientSocketHandle<Policy>::read(ForwardWritableRange & range)
+senf::ClientSocketHandle<Policy>::
+read(ForwardWritableRange & range,
+     typename boost::disable_if< boost::is_convertible<ForwardWritableRange,unsigned> >::type *)
 {
     return detail::ReadRange< 
         ClientSocketHandle<Policy>, 
diff --git a/Socket/ClientSocketHandle.hh b/Socket/ClientSocketHandle.hh
index 07f206930..befb826aa 100644
--- a/Socket/ClientSocketHandle.hh
+++ b/Socket/ClientSocketHandle.hh
@@ -30,6 +30,8 @@
 // Custom includes
 #include <boost/call_traits.hpp>
 #include <boost/range.hpp>
+#include <boost/utility.hpp>
+#include <boost/type_traits.hpp>
 #include "SocketHandle.hh"
 
 //#include "ClientSocketHandle.mpp"
@@ -173,7 +175,8 @@ namespace senf {
         std::string  read         (unsigned limit=0);
         template <class ForwardWritableRange>
         typename boost::range_iterator<ForwardWritableRange>::type
-                     read         (ForwardWritableRange const & range);
+                     read         (ForwardWritableRange const & range,
+                                   typename boost::disable_if< boost::is_convertible<ForwardWritableRange,unsigned> >::type * = 0);
                                         ///< Read data into range
                                         /**< Read data into the given range. At most
                                              <tt>boost::size(range)</tt> characters are read. The
@@ -188,7 +191,8 @@ namespace senf {
                                                   <a href="http://www.boost.org/libs/range/index.html">Boost.Range</a> */
         template <class ForwardWritableRange>
         typename boost::range_iterator<ForwardWritableRange>::type
-                     read         (ForwardWritableRange & range);
+                     read         (ForwardWritableRange & range,
+                                   typename boost::disable_if< boost::is_convertible<ForwardWritableRange,unsigned> >::type * = 0);
                                         ///< Read data into range
                                         /**< \see read(ForwardWritableRange const &) \n
                                                   read() \n
-- 
GitLab