X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fboost%2Fboost%2Fproto%2Fdebug.hpp;h=7d3e42fce004eef86e520443eca556c38a1463e3;hb=92f5a8d42d07f9929ae4fa7e01342fe8d96808a8;hp=f732bc2a99062857f69b414d1f39c74f5d3b1191;hpb=a0324939f9d0e1905d5df8f57442f09dc70af83d;p=ceph.git diff --git a/ceph/src/boost/boost/proto/debug.hpp b/ceph/src/boost/boost/proto/debug.hpp index f732bc2a9..7d3e42fce 100644 --- a/ceph/src/boost/boost/proto/debug.hpp +++ b/ceph/src/boost/boost/proto/debug.hpp @@ -11,14 +11,14 @@ #include #include -#include +#include +#include #include #include #include #include #include #include -#include namespace boost { namespace proto { @@ -100,7 +100,7 @@ namespace boost { namespace proto { template named_any(T const &) - : name_(BOOST_SP_TYPEID(T).name()) + : name_(BOOST_CORE_TYPEID(T).name()) {} char const *name_; @@ -114,6 +114,23 @@ namespace boost { namespace proto namespace detail { + // copyable functor to pass by value to fusion::foreach + struct display_expr_impl; + struct display_expr_impl_functor + { + display_expr_impl_functor(display_expr_impl const& impl): impl_(impl) + {} + + template + void operator()(Expr const &expr) const + { + this->impl_(expr); + } + + private: + display_expr_impl const& impl_; + }; + struct display_expr_impl { explicit display_expr_impl(std::ostream &sout, int depth = 0) @@ -152,7 +169,7 @@ namespace boost { namespace proto this->sout_ << (this->first_? "" : ", "); this->sout_ << tag() << "(\n"; display_expr_impl display(this->sout_, this->depth_ + 4); - fusion::for_each(expr, display); + fusion::for_each(expr, display_expr_impl_functor(display)); this->sout_.width(this->depth_); this->sout_ << "" << ")\n"; this->first_ = false;