C++ boost::phoenix::函数的问题
使用时我遇到了一些问题。据我所知,这个惰性函数需要functor作为它的模板参数。我必须定义一个函子类/结构,然后将其作为模板参数传递给实例化。但它太长,太多余了。我是否可以使用其他一些可调用类型来创建C++ boost::phoenix::函数的问题,c++,boost,lazy-evaluation,boost-phoenix,C++,Boost,Lazy Evaluation,Boost Phoenix,使用时我遇到了一些问题。据我所知,这个惰性函数需要functor作为它的模板参数。我必须定义一个函子类/结构,然后将其作为模板参数传递给实例化。但它太长,太多余了。我是否可以使用其他一些可调用类型来创建phoenix::function(函数引用/指针等)?我试过lambdas: const auto foo = [] { cout <<"Test"; } const boost::phoenix::function<decltype(foo)> lazy; con
phoenix::function
(函数引用/指针等)?我试过lambdas
:
const auto foo = [] { cout <<"Test"; }
const boost::phoenix::function<decltype(foo)> lazy;
const auto foo=[]{cout由于foo
的类型不是默认可构造的,lazy
需要一个初始值设定项:
boost::phoenix::function<decltype(foo)> lazy { foo };
boost::phoenix::function lazy{foo};
@AlexanderKaraberov。您可以尝试boost::phoenix::function lazy(foo);
,以防编译器在大括号初始化时遇到问题。