desired output
void desired_output{
namespace karma = boost::spirit::karma;
unsigned int A[] = {10, 9, 8, 7, 6};
std::vector<unsigned int> v(A, A + 5);
std::string generated;
for(size_t i = 0; i != v.size(); ++i)
{
std::cout<<v[i]<<" equal to ";
karma::generate(std::back_inserter(generated),
karma::uint_generator<unsigned int, 2>() << karma::eol, v[i]);
std::cout<<generated;
generated.clear();
}
}
This will output
10 equal to 1010
9 equal to 1001
8 equal to 1000
7 equal to 111
6 equal to 110
void desired_syntax{
namespace karma = boost::spirit::karma;
unsigned int A[] = {10, 9, 8, 7, 6};
std::vector<unsigned int> v(A, A + 5);
std::string generated;
karma::generate(std::back_inserter(generated), *( karma::uint_[karma::_1]<< " equal to " << karma::uint_generator<unsigned int, 2>() << karma::eol), v);
std::cout<<generated;
}
this will generate output like
10 equal to 1001
8 equal to 111
6 equal to
Because karma::uint[karma::_1] will consume attribute
How could I make "desired_syntax" generate the same output as "desired_output"?
Thanks a lot