Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ boost::phoenix::函数的问题_C++_Boost_Lazy Evaluation_Boost Phoenix - Fatal编程技术网

C++ boost::phoenix::函数的问题

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

使用时我遇到了一些问题。据我所知,这个惰性函数需要functor作为它的模板参数。我必须定义一个函子类/结构,然后将其作为模板参数传递给实例化。但它太长,太多余了。我是否可以使用其他一些可调用类型来创建
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);
,以防编译器在大括号初始化时遇到问题。