
On Apr 4, 2:53 am, Thomas Heller <thom.hel...@googlemail.com> wrote:
I messed up in the type calculation ;) Thanks for reporting, the issue is now fixed on trunk.
great, thanks, now it works. What I wanted to achieve was a function class that is at the same time a lazy function, A a; a(5.); //calls the usual operator() a(arg1 + 1.); // build a phoenix expression maybe implemented like below. However I can't, the compilation error was usr/include/boost/type_traits/is_abstract.hpp:72:4: error: incomplete type ‘A’ not allowed. Is there an elegant way to achieve this? -- Thanks -- Alfredo #include<boost/phoenix/core.hpp> #include<boost/phoenix/function.hpp> struct A : boost::phoenix::function<A&> { A() : boost::phoenix::function<A&>(*this){} template <typename Arg> struct result{ typedef double type; }; using boost::phoenix::function<A&>::operator(); template<typename Arg> double operator()(Arg arg1) const{ return 5.; } };