用户在Boost Phoenix中定义的参数

时间:2013-02-25 00:07:32

标签: c++ boost boost-phoenix boost-proto

Boost Phoenix文档here表示我可以创建自己的(lambda)参数,而不是_1 / arg1_2arg2等。所以,从这样的代码开始:

#include <iostream>
#include <boost/phoenix.hpp>

int main(int argc, char *argv[]) {
  std::cout << (boost::phoenix::arg_names::_1)(17) << std::endl;
  return 0;
}

...输出17,我的目标是使用myarg1的第一步。文档建议我先#include <boost/spirit/home/phoenix/core/argument.hpp>。但是,这样做会导致一系列编译错误:错误:重新定义'struct boost :: phoenix :: detail :: error_expecting_arguments'

如果没有包含arguments.hpp文件的,我注意到我可以声明boost::phoenix::argument<0>类型的变量。当我尝试声明一个关键类型的变量boost::phoenix::actor< boost::phoenix::argument<0> >时,我再次收到许多错误;这一次从:错误开始:没有名为'proto_base_expr'的类型。如何定义自己的lambda参数?

0 个答案:

没有答案