Comments 8
Мне не хватило в статье сравнения с linenoise
Имя приложения тоже аргумент - не надо выкидывать его. Код может использоваться для сборки более чем одного приложения: к примеру trial или lite версии или еще каких вариантов вплоть до библиотеки.
так кто его выкидывает? Оно не аргумент, а имя, было бы странно из имени распарсить себе опцию как будто её передал пользователь
Why does argv include the program name?
Is "argv[0] = name-of-executable" an accepted standard or just a common convention?
Вы не поверите, но даже если вы запустите командную оболочку как sh или bash, то она будет работать по разному.
А я правильно понимаю, что у сгенерированного cli::options есть конструктор по умолчанию? Если да, то как он работает с параметрами ENUM
? И, кстати, что там происходит с ENUM
с пустым списком вариантов?
ну пустой список вариантов должен быть ошибкой компиляции, по умолчанию используется первое из значений
А вообще, это конечно пока не предусмотрено(так как я писал это всего пару вечеров на коленке), но в целом это можно расширять и своими типами и указывать в дефолтных значениях произвольные функции, главное только, чтобы их было видно в точке инклуда
CLI'нический парсинг