Fix special members for http classes

This commit is contained in:
Vinnie Falco
2014-08-28 08:32:22 -07:00
committed by Nik Bougalis
parent 04bcd93ba3
commit c65fb91878
3 changed files with 43 additions and 31 deletions

View File

@@ -89,19 +89,18 @@ public:
headers() = default;
template <class = void>
#if defined(_MSC_VER) && _MSC_VER <= 1800
headers (headers&& other);
headers& operator= (headers&& other);
#else
headers (headers&& other) = default;
headers& operator= (headers&& other) = default;
#endif
template <class = void>
headers (headers const& other);
template <class = void>
headers&
operator= (headers&& other);
template <class = void>
headers&
operator= (headers const& other);
headers& operator= (headers const& other);
/** Returns an iterator to headers in order of appearance. */
/** @{ */
@@ -184,7 +183,8 @@ less::operator() (
//------------------------------------------------------------------------------
template <class>
#if defined(_MSC_VER) && _MSC_VER <= 1800
inline
headers::headers (headers&& other)
: list_ (std::move(other.list_))
, set_ (std::move(other.set_))
@@ -192,14 +192,7 @@ headers::headers (headers&& other)
}
template <class>
headers::headers (headers const& other)
{
for (auto const& e : other.list_)
append (e.field, e.value);
}
template <class>
inline
headers&
headers::operator= (headers&& other)
{
@@ -207,8 +200,16 @@ headers::operator= (headers&& other)
set_ = std::move(other.set_);
return *this;
}
#endif
template <class>
inline
headers::headers (headers const& other)
{
for (auto const& e : other.list_)
append (e.field, e.value);
}
inline
headers&
headers::operator= (headers const& other)
{

View File

@@ -62,15 +62,18 @@ public:
template <class = void>
message();
template <class = void>
#if defined(_MSC_VER) && _MSC_VER <= 1800
message (message&& other);
template <class = void>
message& operator= (message&& other);
// Memberspace
beast::http::headers headers;
#else
message (message&& other) = default;
message& operator= (message&& other) = default;
#endif
// Memberspaces
beast::http::headers headers;
beast::http::body body;
bool
@@ -198,7 +201,8 @@ message::message()
{
}
template <class>
#if defined(_MSC_VER) && _MSC_VER <= 1800
inline
message::message (message&& other)
: request_ (other.request_)
, method_ (std::move(other.method_))
@@ -213,7 +217,7 @@ message::message (message&& other)
{
}
template <class>
inline
message&
message::operator= (message&& other)
{
@@ -229,6 +233,7 @@ message::operator= (message&& other)
body = std::move(other.body);
return *this;
}
#endif
//------------------------------------------------------------------------------

View File

@@ -46,9 +46,13 @@ public:
message_.get().request(request);
}
template <class = void>
parser&
operator= (parser&& other);
#if defined(_MSC_VER) && _MSC_VER <= 1800
parser& operator= (parser&& other);
#else
parser& operator= (parser&& other) = default;
#endif
private:
template <class = void>
@@ -118,7 +122,8 @@ private:
//------------------------------------------------------------------------------
template <class>
#if defined(_MSC_VER) && _MSC_VER <= 1800
inline
parser&
parser::operator= (parser&& other)
{
@@ -126,6 +131,7 @@ parser::operator= (parser&& other)
message_ = std::move (other.message_);
return *this;
}
#endif
template <class>
void