Simplify some type trait expressions

fix #466
This commit is contained in:
Vinnie Falco
2018-04-26 17:30:46 -07:00
parent 22e3f014ad
commit c592782a1b
6 changed files with 22 additions and 23 deletions

View File

@@ -88,7 +88,8 @@ public:
private: private:
using alloc_t = fields_alloc<char>; using alloc_t = fields_alloc<char>;
using request_body_t = http::basic_dynamic_body<boost::beast::flat_static_buffer<1024 * 1024>>; //using request_body_t = http::basic_dynamic_body<boost::beast::flat_static_buffer<1024 * 1024>>;
using request_body_t = http::string_body;
// The acceptor used to listen for incoming connections. // The acceptor used to listen for incoming connections.
tcp::acceptor& acceptor_; tcp::acceptor& acceptor_;

View File

@@ -162,8 +162,7 @@ template<class T, class E>
struct is_contiguous_container<T, E, void_t< struct is_contiguous_container<T, E, void_t<
decltype( decltype(
std::declval<std::size_t&>() = std::declval<T const&>().size(), std::declval<std::size_t&>() = std::declval<T const&>().size(),
std::declval<E*&>() = std::declval<T&>().data(), std::declval<E*&>() = std::declval<T&>().data()),
(void)0),
typename std::enable_if< typename std::enable_if<
std::is_same< std::is_same<
typename std::remove_cv<E>::type, typename std::remove_cv<E>::type,

View File

@@ -118,8 +118,7 @@ struct has_get_executor : std::false_type {};
template<class T> template<class T>
struct has_get_executor<T, beast::detail::void_t<decltype( struct has_get_executor<T, beast::detail::void_t<decltype(
std::declval<T&>().get_executor(), std::declval<T&>().get_executor())>> : std::true_type {};
(void)0)>> : std::true_type {};
#endif #endif
/** Alias for `T::lowest_layer_type` if it exists, else `T` /** Alias for `T::lowest_layer_type` if it exists, else `T`
@@ -195,8 +194,8 @@ template<class T>
struct is_async_read_stream<T, detail::void_t<decltype( struct is_async_read_stream<T, detail::void_t<decltype(
std::declval<T>().async_read_some( std::declval<T>().async_read_some(
std::declval<detail::MutableBufferSequence>(), std::declval<detail::MutableBufferSequence>(),
std::declval<detail::ReadHandler>()), std::declval<detail::ReadHandler>())
(void)0)>> : std::integral_constant<bool, )>> : std::integral_constant<bool,
has_get_executor<T>::value has_get_executor<T>::value
> {}; > {};
#endif #endif
@@ -239,8 +238,8 @@ template<class T>
struct is_async_write_stream<T, detail::void_t<decltype( struct is_async_write_stream<T, detail::void_t<decltype(
std::declval<T>().async_write_some( std::declval<T>().async_write_some(
std::declval<detail::ConstBufferSequence>(), std::declval<detail::ConstBufferSequence>(),
std::declval<detail::WriteHandler>()), std::declval<detail::WriteHandler>())
(void)0)>> : std::integral_constant<bool, )>> : std::integral_constant<bool,
has_get_executor<T>::value has_get_executor<T>::value
> {}; > {};
#endif #endif
@@ -285,8 +284,8 @@ struct is_sync_read_stream<T, detail::void_t<decltype(
std::declval<detail::MutableBufferSequence>()), std::declval<detail::MutableBufferSequence>()),
std::declval<std::size_t&>() = std::declval<T>().read_some( std::declval<std::size_t&>() = std::declval<T>().read_some(
std::declval<detail::MutableBufferSequence>(), std::declval<detail::MutableBufferSequence>(),
std::declval<boost::system::error_code&>()), std::declval<boost::system::error_code&>())
(void)0)>> : std::true_type {}; )>> : std::true_type {};
#endif #endif
/** Determine if `T` meets the requirements of @b SyncWriteStream. /** Determine if `T` meets the requirements of @b SyncWriteStream.
@@ -329,8 +328,8 @@ struct is_sync_write_stream<T, detail::void_t<decltype(
std::declval<detail::ConstBufferSequence>()), std::declval<detail::ConstBufferSequence>()),
std::declval<std::size_t&>() = std::declval<T&>().write_some( std::declval<std::size_t&>() = std::declval<T&>().write_some(
std::declval<detail::ConstBufferSequence>(), std::declval<detail::ConstBufferSequence>(),
std::declval<boost::system::error_code&>()), std::declval<boost::system::error_code&>())
(void)0)>> : std::true_type {}; )>> : std::true_type {};
#endif #endif
/** Determine if `T` meets the requirements of @b AsyncStream. /** Determine if `T` meets the requirements of @b AsyncStream.
@@ -467,8 +466,8 @@ struct is_file<T, detail::void_t<decltype(
std::declval<std::size_t&>() = std::declval<T&>().write( std::declval<std::size_t&>() = std::declval<T&>().write(
std::declval<void const*>(), std::declval<void const*>(),
std::declval<std::size_t>(), std::declval<std::size_t>(),
std::declval<error_code&>()), std::declval<error_code&>())
(void)0)>> : std::integral_constant<bool, )>> : std::integral_constant<bool,
std::is_default_constructible<T>::value && std::is_default_constructible<T>::value &&
std::is_destructible<T>::value std::is_destructible<T>::value
> {}; > {};

View File

@@ -57,8 +57,8 @@ struct is_chunk_extensions : std::false_type {};
template<class T> template<class T>
struct is_chunk_extensions<T, beast::detail::void_t<decltype( struct is_chunk_extensions<T, beast::detail::void_t<decltype(
std::declval<string_view&>() = std::declval<T&>().str(), std::declval<string_view&>() = std::declval<T&>().str()
(void)0)>> : std::true_type )>> : std::true_type
{ {
}; };

View File

@@ -93,8 +93,8 @@ struct is_body_sized<T, beast::detail::void_t<
typename T::value_type, typename T::value_type,
decltype( decltype(
std::declval<std::uint64_t&>() = std::declval<std::uint64_t&>() =
T::size(std::declval<typename T::value_type const&>()), T::size(std::declval<typename T::value_type const&>())
(void)0)>> : std::true_type {}; )>> : std::true_type {};
template<class T> template<class T>
struct is_fields_helper : T struct is_fields_helper : T

View File

@@ -86,8 +86,8 @@ struct is_body_writer<T, beast::detail::void_t<
std::declval<typename T::writer&>().init(std::declval<error_code&>()), std::declval<typename T::writer&>().init(std::declval<error_code&>()),
std::declval<boost::optional<std::pair< std::declval<boost::optional<std::pair<
typename T::writer::const_buffers_type, bool>>&>() = typename T::writer::const_buffers_type, bool>>&>() =
std::declval<typename T::writer>().get(std::declval<error_code&>()), std::declval<typename T::writer>().get(std::declval<error_code&>())
(void)0)>> : std::integral_constant<bool, )>> : std::integral_constant<bool,
boost::asio::is_const_buffer_sequence< 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, (std::is_constructible<typename T::writer,
@@ -142,8 +142,8 @@ struct is_body_reader<T, beast::detail::void_t<decltype(
std::declval<boost::asio::const_buffer>(), std::declval<boost::asio::const_buffer>(),
std::declval<error_code&>()), std::declval<error_code&>()),
std::declval<typename T::reader&>().finish( std::declval<typename T::reader&>().finish(
std::declval<error_code&>()), std::declval<error_code&>())
(void)0)>> : std::integral_constant<bool, )>> : std::integral_constant<bool,
(std::is_constructible<typename T::reader, (std::is_constructible<typename T::reader,
header<true, detail::fields_model>&, header<true, detail::fields_model>&,
typename T::value_type&>::value && typename T::value_type&>::value &&