Если Boost для вас излишне, GNU Gengetopt , вероятно, тоже, но ИМХО, это забавный инструмент, с которым можно возиться.
И я стараюсь держаться подальше от объектов глобальных опций, я предпочитаю, чтобы каждый класс читал свою собственную конфигурацию. Помимо целой философии «Globals are evil», она в конечном итоге превращается в постоянно растущий беспорядок, в котором все ваши конфигурации находятся в одном месте, а также сложнее сказать, где и где используются переменные конфигурации. Если вы держите конфигурацию ближе к месту ее использования, становится более очевидным, для чего она нужна, и ее легче поддерживать в чистоте.
(Что касается того, что я использую лично для всего недавнего, это была проприетарная библиотека для разбора командной строки, которую написал кто-то другой в моей компании, но, к сожалению, это не сильно вам помогает)