我正在尝试通过语义操作设置karmas generator-value,但是,它不会编译。我找不到共鸣的原因,因为我很确定我按照文档中的说明使用它。因为我是业力新手,所以我最有可能犯了一些菜鸟错误。一个最小的例子:
#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;
}
导致comipler错误:
error: no viable overloaded '='
我正在使用g ++ 4.6.3并提升1.48。
答案 0 :(得分:1)
您缺少要包含的标题。您可以使用:
#include <boost/spirit/include/phoenix_operator.hpp>
包括此工作所需的运算符,或者:
#include <boost/spirit/include/phoenix.hpp>
包含有关Boost.Phoenix的所有内容。 On LWS.