X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FClientSocketHandle.hh;h=1eff5ce5d0311d88350fe44ae870672e4728ef61;hb=81ffa1c459b96dd44472bcef37e1e373934ee138;hp=befb826aaba21fe310e8c68def9d4ecee3800841;hpb=0b68624566e2e5c855dde09254f3280c029d621d;p=senf.git diff --git a/Socket/ClientSocketHandle.hh b/Socket/ClientSocketHandle.hh index befb826..1eff5ce 100644 --- a/Socket/ClientSocketHandle.hh +++ b/Socket/ClientSocketHandle.hh @@ -86,10 +86,6 @@ namespace senf { \see \ref policy_group \n \ref protocol_group - - \fixme Add enable_if conditions so anything convertible to unsigned will not be interpreted - as a Range template argument but will use the unsigned variant of - read/readfrom/write/writeto. */ template class ClientSocketHandle @@ -127,13 +123,22 @@ namespace senf { ClientSocketHandle(); // conversion constructors +# ifndef DOXYGEN template ClientSocketHandle(ClientSocketHandle other, typename SocketHandle::template IsCompatible::type * = 0); +# else + ClientSocketHandle(ClientSocketHandle other); +# endif +# ifndef DOXYGEN template typename SocketHandle::template IsCompatible::type const & operator=(ClientSocketHandle other); +# else + template + OtherPolicy const & operator=(ClientSocketHandle other); +# endif ///@} /////////////////////////////////////////////////////////////////////////// @@ -174,9 +179,13 @@ namespace senf { */ std::string read (unsigned limit=0); template +# ifndef DOXYGEN typename boost::range_iterator::type read (ForwardWritableRange const & range, typename boost::disable_if< boost::is_convertible >::type * = 0); +# else + typename boost::range_iterator::type + read (ForwardWritableRange const & range); ///< Read data into range /**< Read data into the given range. At most boost::size(range) characters are read. The @@ -189,14 +198,21 @@ namespace senf { last read character \see \ref read() \n Boost.Range */ +# endif +# ifndef DOXYGEN template typename boost::range_iterator::type read (ForwardWritableRange & range, typename boost::disable_if< boost::is_convertible >::type * = 0); +# else + template + typename boost::range_iterator::type + read (ForwardWritableRange & range); ///< Read data into range /**< \see read(ForwardWritableRange const &) \n read() \n Boost.Range */ +# endif template void read (Sequence & container, unsigned limit); ///< Read data into container