summaryrefslogtreecommitdiff
path: root/boost/beast/http/type_traits.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/beast/http/type_traits.hpp')
-rw-r--r--boost/beast/http/type_traits.hpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/boost/beast/http/type_traits.hpp b/boost/beast/http/type_traits.hpp
index f90f16ffef..0c8210443e 100644
--- a/boost/beast/http/type_traits.hpp
+++ b/boost/beast/http/type_traits.hpp
@@ -89,11 +89,19 @@ struct is_body_writer<T, beast::detail::void_t<
std::declval<typename T::writer>().get(std::declval<error_code&>()),
(void)0)>> : std::integral_constant<bool,
boost::asio::is_const_buffer_sequence<
- typename T::writer::const_buffers_type>::value &&
+ typename T::writer::const_buffers_type>::value && (
+ (std::is_constructible<typename T::writer,
+ header<true, detail::fields_model>&,
+ typename T::value_type&>::value &&
std::is_constructible<typename T::writer,
+ header<false, detail::fields_model>&,
+ typename T::value_type&>::value) ||
+ // Deprecated BodyWriter Concept (v1.66)
+ (std::is_constructible<typename T::writer,
message<true, T, detail::fields_model>&>::value &&
std::is_constructible<typename T::writer,
- message<false, T, detail::fields_model>&>::value
+ message<false, T, detail::fields_model>&>::value)
+ )
> {};
#endif
@@ -136,11 +144,18 @@ struct is_body_reader<T, beast::detail::void_t<decltype(
std::declval<typename T::reader&>().finish(
std::declval<error_code&>()),
(void)0)>> : std::integral_constant<bool,
+ (std::is_constructible<typename T::reader,
+ header<true, detail::fields_model>&,
+ typename T::value_type&>::value &&
std::is_constructible<typename T::reader,
+ header<false,detail::fields_model>&,
+ typename T::value_type&>::value) ||
+ // Deprecated BodyReader Concept (v1.66)
+ (std::is_constructible<typename T::reader,
message<true, T, detail::fields_model>&>::value &&
std::is_constructible<typename T::reader,
- message<false, T, detail::fields_model>&>::value
- >
+ message<false, T, detail::fields_model>&>::value)
+ >
{
};
#endif