セマンティック アクションによってカルマ ジェネレーター値を設定しようとしていますが、コンパイルされません。ドキュメントで説明されているように使用していると確信しているため、理由がわかりません。私はカルマに慣れていないので、初歩的なミスを犯した可能性が最も高い. 最小限の例:
#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 とブースト 1.48 を使用しています。