6#include <bond/core/config.h>
8#include <bond/core/bond_fwd.h>
10#include <boost/utility/enable_if.hpp>
16 template <
typename Transform,
typename Enable =
void>
struct
20 template <
typename Transform>
struct
23 typename boost::enable_if_c<!std::is_same<
typename Transform::writer_type,
24 typename Transform::writer_type::Pass0>::value>::type
25 > : std::true_type {};
27 template <
typename Protocols,
typename Transform,
typename T>
28 inline bool DoublePassApply(
const Transform& transform,
const T& value)
30 typedef typename Transform::writer_type Writer;
31 typedef Serializer<Writer, Protocols> Serializer;
33 typename Writer::Pass0::Buffer output;
34 typename Writer::Pass0 pass0(output, transform.Serializer::_output);
36 Apply<Protocols>(transform.Rebind(pass0), value);
37 return transform.Serializer::_output.WithPass0(pass0), Apply<Protocols>(transform, value);
namespace bond
Definition: apply.h:17