Он генерирует генераторы кода, которые легче выделяют массивы или перечисления.
Представьте себе:
std::cout << "enum Items {\n";
for(Items::iterator i(items.begin()), j(items.end); i != j; ++i)
std::cout << *i << ",\n";
std::cout << "};\n";
Т.е. нет необходимости выполнять специальную обработку первого или последнего элемента, чтобы избежать
Если генератор кода написан на Python, например, легко избежать плющения конечной запятой с помощью функции str.join()
:
print("enum Items {")
print(",\n".join(items))
print("}")