3

使用boost::phoenix::function我遇到了一些问题。据我所知,这个惰性函数需要仿函数作为它的模板参数。我必须定义一个仿函数类/结构,然后将其作为模板参数传递以进行实例化。但它太长而且多余。我可以使用其他一些可调用类型进行phoenix::function创建(函数引用/指针等)吗?我试过lambdas

 const auto foo = [] { cout <<"Test"; }
 const boost::phoenix::function<decltype(foo)> lazy;

但调用lazy()没有编译。那么问题是有没有替代函子类来快速创建单行phoenix::function代码?

4

1 回答 1

5

由于类型foo不是默认可构造的,因此lazy需要一个初始化程序:

boost::phoenix::function<decltype(foo)> lazy { foo };
于 2012-10-20T19:52:51.200 回答