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