Subject: Re: [Boost-bugs] [Boost C++ Libraries] #7996: phoenix::bind does not protoify the bound arguments
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-02-08 22:04:15
#7996: phoenix::bind does not protoify the bound arguments
-----------------------------------+----------------------------------------
Reporter: andysem | Owner: theller
Type: Bugs | Status: new
Milestone: To Be Determined | Component: phoenix
Version: Boost Release Branch | Severity: Problem
Resolution: | Keywords: phoenix bind proto log
-----------------------------------+----------------------------------------
Comment (by andysem):
Replying to [comment:1 theller]:
I'm by far not an expert in Boost.Proto but as far as I understand
protoify is used internally by Boost.Proto to envelop objects
participating in template expressions into Boost.Proto expression tree
structures. In particular this is done to all terminals, and this behavior
is used by Boost.Log to transparently convert all attribute_keywords to
attribute_actors.
Boost.Phoenix doesn't use protoify directly, but it does so through some
public interface of Boost.Proto (which is probably make_expr, I don't know
for sure). My guess is that phoenix::bind doesn't treat the bound
arguments the same way Boost.Phoenix treats other terminals in template
expressions. This results in bound arguments not being enveloped into
Boost.Proto terminal structures and consequently it doesn't invoke
protoify and breaks Boost.Log.
I will be happy to use a public interface of Boost.Proto or Boost.Phoenix
to achieve what I need. I just didn't find such an interface. Please, tell
me if there is one.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/7996#comment:2> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:11 UTC