Я не могу использовать числовой генератор повышения кармы в правиле кармы, как мне кажется, потому что я каким-то образом использую неверный параметр шаблона итератора для правила:
#include <iostream>
#include <iterator>
#include <string>
#include <boost/spirit/include/karma.hpp>
template <typename OutputIterator>
boost::spirit::karma::rule<OutputIterator, uint_fast16_t>
int_rule{
boost::spirit::karma::int_
};
int main(int argc, char* argv[])
{
std::string output;
boost::spirit::karma::generate(std::back_inserter(output),
int_rule<std::back_insert_iterator<std::string>>, 5);
std::cout << "\"" << output << "\"\n";
return 0;
}
Сбои в clang и gcc с
ошибка: static_assert не выполнен из-за требования '! Boost :: is_same
, int_ <15>, unused_type>, output_iterator>, int_ <15>, unused_type>> :: value '"int_not_usable_without_attribute" BOOST_SPIRIT_ASSERT_FAIL (OutputIterator, int_not_usable_without_attribute, ());
При использовании генератора напрямую через boost::spirit::karma::generate(std::back_inserter(output),
boost::spirit::karma::int_, 5);
компилируется и работает, так что я делаю неправильно?Какой итератор вместо std::back_insert_iterator<std::string>
мне нужно использовать, чтобы включить числовой генератор повышения кармы в правило генератора кармы?