|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r69506 - sandbox/SOC/2010/phoenix3/boost/phoenix/core
From: thom.heller_at_[hidden]
Date: 2011-03-03 01:39:10
Author: theller
Date: 2011-03-03 01:39:05 EST (Thu, 03 Mar 2011)
New Revision: 69506
URL: http://svn.boost.org/trac/boost/changeset/69506
Log:
Added terminal support in phoenix::call
Text files modified:
sandbox/SOC/2010/phoenix3/boost/phoenix/core/call.hpp | 24 ++++++++++++++++++++++++
1 files changed, 24 insertions(+), 0 deletions(-)
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/call.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/call.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/call.hpp 2011-03-03 01:39:05 EST (Thu, 03 Mar 2011)
@@ -20,6 +20,30 @@
{
template <typename Fun, typename Expr, typename State, typename Data, long Arity = proto::arity_of<Expr>::value>
struct call_impl;
+
+ template <typename Fun, typename Expr, typename State, typename Data>
+ struct call_impl<Fun, Expr, State, Data, 0>
+ : proto::transform_impl<Expr, State, Data>
+ {
+ typedef
+ typename boost::phoenix::result_of::context<State, Data>::type
+ context_type;
+
+ typedef
+ typename boost::result_of<
+ Fun(context_type, Expr)
+ >::type
+ result_type;
+
+ result_type operator()(
+ typename call_impl::expr_param e
+ , typename call_impl::state_param s
+ , typename call_impl::data_param d
+ ) const
+ {
+ return Fun()(boost::phoenix::context(s, d), e);
+ }
+ };
}
template <typename Fun, typename Dummy = void>
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk