Мне интересно, есть ли библиотека типа Boost Format, но которая поддерживает именованные параметры, а не позиционные. Это обычная идиома, например. Python, где у вас есть контекст для форматирования строк, который может или не может использовать все доступные аргументы, например
mouse_state = {}
mouse_state['button'] = 0
mouse_state['x'] = 50
mouse_state['y'] = 30
#...
"You clicked %(button)s at %(x)d,%(y)d." % mouse_state
"Targeting %(x)d, %(y)d." % mouse_state
Существуют ли библиотеки, предлагающие функциональность этих двух последних строк? Я ожидаю, что он предложит API что-то вроде:
PrintFMap(string format, map<string, string> args);
В Googling я нашел много библиотек, предлагающих варианты позиционных параметров, но ни один из них не поддерживает названные. В идеале библиотека имеет несколько зависимостей, поэтому я могу легко ее поместить в свой код. С++ не будет столь же идиоматичным для сбора именованных аргументов, но, вероятно, кто-то там подумал об этом больше, чем я.
Важное значение имеет производительность, в частности, я хочу, чтобы сокращения памяти (всегда сложные на С++), так как это может запускаться на устройствах без виртуальной памяти. Но даже медленный, чтобы начать с, вероятно, будет быстрее, чем писать его с нуля.