stereomatching 17 Posting Whiz in Training

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

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.