http::message is not-a boost::empty_value

fix #1306
This commit is contained in:
Vinnie Falco
2018-11-22 21:02:58 -08:00
parent 5bff4ed8ab
commit 2cdaf51119
4 changed files with 15 additions and 11 deletions

View File

@ -2,6 +2,7 @@ Version 192:
* Use mp11::integer_sequence
* Tidy up warnings and deprecated usage
* http::message is not-a boost::empty_value
--------------------------------------------------------------------------------

View File

@ -19,10 +19,10 @@ namespace beast {
namespace http {
template<bool isRequest, class Fields>
struct header;
class header;
template<bool, class, class>
struct message;
class message;
template<bool isRequest,class Body, class Fields>
class parser;

View File

@ -47,16 +47,17 @@ namespace http {
*/
#if BOOST_BEAST_DOXYGEN
template<bool isRequest, class Fields = fields>
struct header : Fields
class header : public Fields
#else
template<bool isRequest, class Fields = fields>
struct header;
class header;
template<class Fields>
struct header<true, Fields> : Fields
class header<true, Fields> : public Fields
#endif
{
public:
static_assert(is_fields<Fields>::value,
"Fields requirements not met");
@ -229,7 +230,7 @@ struct header<true, Fields> : Fields
private:
template<bool, class, class>
friend struct message;
friend class message;
template<class T>
friend
@ -258,8 +259,9 @@ private:
A `header` includes the start-line and header-fields.
*/
template<class Fields>
struct header<false, Fields> : Fields
class header<false, Fields> : public Fields
{
public:
static_assert(is_fields<Fields>::value,
"Fields requirements not met");
@ -418,7 +420,7 @@ struct header<false, Fields> : Fields
private:
#if ! BOOST_BEAST_DOXYGEN
template<bool, class, class>
friend struct message;
friend class message;
template<class T>
friend
@ -487,13 +489,14 @@ using value_type_t = typename T::value_type;
field value pairs.
*/
template<bool isRequest, class Body, class Fields = fields>
struct message
: header<isRequest, Fields>
class message
: public header<isRequest, Fields>
#if ! BOOST_BEAST_DOXYGEN
, boost::empty_value<
typename Body::value_type>
#endif
{
public:
/// The base class used to hold the header portion of the message.
using header_type = header<isRequest, Fields>;

View File

@ -25,7 +25,7 @@ namespace beast {
namespace http {
template<bool, class, class>
struct message;
class message;
/** Determine if `T` meets the requirements of @b Body.