
which is almost the type I am trying to generate but it is of 'const&' (const reference) type which is a problem for a return type because of 'returning reference to temporary'.
Perhaps just remove ref if you want the value?
yes, I did that
typename remove_reference
Anyway, I think I need to look more closely. But right now, I'm quite full. sorry if I made you waste your time, and thank you for your help so far.
It seems you have it working anyway, no?
yes and no, the argument and the return type are fully translated from
lambda to phoenix
the final result is:
typename remove_reference<
typename actor<LambdaExp>::template
result const& iv
){ Now the problem is to translate the body of the function,
the original Boost.Lambda version was
bind(
&LambdaExp::template sig ::type::value,
get<0>(f_expr.args)
(bind(&quantity<UnitIntegrandDomain>::from_value, _1))
),
which I can not translate into boost.phoenix, my best try is
boost::phoenix::bind(
&remove_reference On one hand Phoenix seems more powerful than BLL but BLL is more
intuitive to go into the internal works. If so, can we get back to this later so I can offer a better library
solution? I'm very interested with this and how we can do better
with the current Phoenix-3 rewrite. Sure, glad you are interested. Let me know if you need more details,
what I am doing now is an experimental code to
interface GSL routines from C++ that uses lambda expression.
Experimental in the sense that I want to see how far I can get with
Phoenix in terms of building a natural (mathematical) language
interface to numerical routines.
In this experimental code
I am trying to make the functions smart enough to recognize *simple*
patterns in the expression.
In this example, it recognizes the singularity (at 3.) in the integral
integral( f( _1 )/(_1 - 3.) , interval(2., 4.));
other simple expressions are
solve( f(_1) == 2.);
just to give you an idea. I am not sure if am repeating someone else's
work but when I see expression templates in C++ I see numerical and
symbolic mathematics converge into the perfect language to do
scientific computing. Of course the patterns do not need to be
necessarily *simple* in the future, once we master Phoenix we can go
beyond to write transformation rules for expression, in order to do
that I must gain complete access to the internal subexpressions and
subexpression types.
Thank you,
Alfredo