我得到
“ qi :: _ 10不是qi的成员”
为qi编译语法时出错。
有没有办法增加允许的最大值?
答案 0 :(得分:0)
副手:避免大量函数参数的代码味道。
那是
之前:
#define SPIRIT_ARGUMENTS_LIMIT 10
#include <boost/spirit/include/qi.hpp>
int main() {
auto& _10 = boost::spirit::labels::_10;
}
之后:
#define SPIRIT_ARGUMENTS_LIMIT 11
#include <boost/spirit/include/qi.hpp>
int main() {
auto& _10 = boost::spirit::labels::_10;
}
您可以欺骗和硬编码自己的占位符:
boost::phoenix::actor<boost::spirit::argument<998> > const _999;
请注意998
和_999
之间的差异;这是一个未记录的实现细节,因此最好不要依赖它,或者至少要进行测试。