diff --git a/Socket/ClientSocketHandle.cti b/Socket/ClientSocketHandle.cti index b3c124045888b1559cb0ebe079467f9988fbf2f7..96508800fb8eb0c57bf000b783f9d2d6c79abd76 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 07f20693057c1a9f0e96dd5dfc86ab7b5c8bb22c..befb826aaba21fe310e8c68def9d4ecee3800841 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