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>,
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>,
// 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"
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
<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