我正在尝试通过语义操作设置业力生成器值,但是它不会编译。我找不到原因,因为我很确定我按照文档中的说明使用它。由于我是业力新手,因此很可能我犯了一些新手错误。一个最小的例子:
#include <boost/spirit/include/karma.hpp>
#include <boost/spirit/include/karma_int.hpp>
#include <boost/spirit/include/karma_generate.hpp>
namespace karma = boost::spirit::karma;
int main() {
std::string s;
std::back_insert_iterator<std::string> out(s);
boost::spirit::karma::generate(out,karma::int_[karma::_1=2]); //won't compile
//boost::spirit::karma::generate(out,karma::int_,2); this compiles and works
std::cout<<s;
}
导致编译器错误:
error: no viable overloaded '='
我正在使用 g++ 4.6.3 和 boost 1.48。