В настоящее время я использую какую-то старую библиотеку C для получения параметров программы и хотела бы заменить ее на какой-то правильный C ++ (главным образом, чтобы стать независимым от этой библиотеки, что является настоящим бременем). Я изучал использование boost.program_options, но не уверен, что он может поддерживать все, что я хочу. Некоторые вещи, которые я хочу, это:
разрешить следующий синтаксис командной строки: myprogram option=value
(в частности, я не очень хочу --option value
синтаксис)
используйте значение по умолчанию, если значение не указано (очевидно, это может быть сделано в моей программе, но поддержка в библиотеке опций была бы хорошей)
разрешить параметры по умолчанию (которые всегда присутствуют, даже если я их не даю) и автоматический вывод справки, состоящий из всех параметров и их описания
разрешить математический анализ, т.е. (командная строка) myprogram option1=Pi option2=3/5 option3=sqrt(2)
дать 3.1415 …, 0.6 и 1.415 … в моей программе
Позволяет расширить отдельные значения. Позволять option_3Dpoint
соответствовать std::array<double,3>
, Я хочу оба myprogram option_3Dpoint=0,0,0
а также myprogram option_3Dpoint=0
(расширяется до 0,0,0
) работать
Какие из них могут поддерживаться boost.program_options? Есть ли альтернативы?
boost.program_options — очень хорошая библиотека. Вы также можете использовать для разбора конфигурационных файлов. ответы:
3DPoint
объект из строки как 0,0,0
Других решений пока нет …