Skip to content

Commit 1ba8079

Browse files
committed
Simplifying tag dispatch for body modifier.
1 parent 2af5fb0 commit 1ba8079

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

boost/network/message/modifiers/body.hpp

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,24 @@
66
// (See accompanying file LICENSE_1_0.txt or copy at
77
// http://www.boost.org/LICENSE_1_0.txt)
88

9-
#include <boost/network/support/is_async.hpp>
9+
#include <boost/network/support/pod_or_normal.hpp>
1010
#include <boost/thread/future.hpp>
1111

1212
namespace boost { namespace network {
1313

14-
namespace impl {
15-
16-
template <class Message, class ValueType, class Tag>
17-
inline void body(Message const & message, ValueType const & body_, Tag const &, mpl::false_ const &) {
18-
message.body(body_);
19-
}
20-
21-
template <class Message, class ValueType, class Tag>
22-
inline void body(Message const & message, ValueType const & body_, Tag const &, mpl::true_ const &) {
23-
message.body(body_);
24-
}
14+
template <class Tag, template <class> class Message, class ValueType>
15+
inline void body_impl(Message<Tag> & message, ValueType const & body, tags::pod) {
16+
message.body = body;
17+
}
2518

26-
} // namespace impl
19+
template <class Tag, template <class> class Message, class ValueType>
20+
inline void body_impl(Message<Tag> & message, ValueType const & body, tags::normal) {
21+
message.body(body);
22+
}
2723

2824
template <class Tag, template <class> class Message, class ValueType>
29-
inline void body(Message<Tag> const & message, ValueType const & body_) {
30-
impl::body(message, body_, Tag(), is_async<Tag>());
25+
inline void body(Message<Tag> & message, ValueType const & body_) {
26+
body_impl(message, body_, typename pod_or_normal<Tag>::type());
3127
}
3228

3329
} // namespace network

0 commit comments

Comments
 (0)