summaryrefslogtreecommitdiff
path: root/boost/asio/detail/is_buffer_sequence.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/asio/detail/is_buffer_sequence.hpp')
-rw-r--r--boost/asio/detail/is_buffer_sequence.hpp30
1 files changed, 18 insertions, 12 deletions
diff --git a/boost/asio/detail/is_buffer_sequence.hpp b/boost/asio/detail/is_buffer_sequence.hpp
index 89b8df762d..c52103206c 100644
--- a/boost/asio/detail/is_buffer_sequence.hpp
+++ b/boost/asio/detail/is_buffer_sequence.hpp
@@ -54,19 +54,22 @@ struct buffer_sequence_memfns_check
{
};
-template <typename>
-char (&buffer_sequence_begin_helper(...))[2];
-
#if defined(BOOST_ASIO_HAS_DECLTYPE)
+template <typename>
+char buffer_sequence_begin_helper(...);
+
template <typename T>
-char buffer_sequence_begin_helper(T* t,
+char (&buffer_sequence_begin_helper(T* t,
typename enable_if<!is_same<
decltype(boost::asio::buffer_sequence_begin(*t)),
- void>::value>::type*);
+ void>::value>::type*))[2];
#else // defined(BOOST_ASIO_HAS_DECLTYPE)
+template <typename>
+char (&buffer_sequence_begin_helper(...))[2];
+
template <typename T>
char buffer_sequence_begin_helper(T* t,
buffer_sequence_memfns_check<
@@ -75,19 +78,22 @@ char buffer_sequence_begin_helper(T* t,
#endif // defined(BOOST_ASIO_HAS_DECLTYPE)
-template <typename>
-char (&buffer_sequence_end_helper(...))[2];
-
#if defined(BOOST_ASIO_HAS_DECLTYPE)
+template <typename>
+char buffer_sequence_end_helper(...);
+
template <typename T>
-char buffer_sequence_end_helper(T* t,
+char (&buffer_sequence_end_helper(T* t,
typename enable_if<!is_same<
decltype(boost::asio::buffer_sequence_end(*t)),
- void>::value>::type*);
+ void>::value>::type*))[2];
#else // defined(BOOST_ASIO_HAS_DECLTYPE)
+template <typename>
+char (&buffer_sequence_end_helper(...))[2];
+
template <typename T>
char buffer_sequence_end_helper(T* t,
buffer_sequence_memfns_check<
@@ -215,8 +221,8 @@ char mutable_buffers_type_typedef_helper(
template <typename T, typename Buffer>
struct is_buffer_sequence_class
: integral_constant<bool,
- sizeof(buffer_sequence_begin_helper<T>(0)) != 1 &&
- sizeof(buffer_sequence_end_helper<T>(0)) != 1 &&
+ sizeof(buffer_sequence_begin_helper<T>(0, 0)) != 1 &&
+ sizeof(buffer_sequence_end_helper<T>(0, 0)) != 1 &&
sizeof(buffer_sequence_element_type_helper<T, Buffer>(0, 0)) == 1>
{
};