Ну вроде заработало как мне нужно. Пока наиболее простым оказался вариант через наследование. Общие аргументы на полях в базовом классе, предметные для проги в рутовом, базовый класс вызывает метод для получения результатов парсинга cli, этот метод переопределяется в рутовом классе и вызывается в нем гетопт, куда можно передать указатели на проперти-поля из базового класса и указатели на специфические поля для проги, хотя т.к. в опциях есть описание и т.п. можно во что-то обернуть, но это уже мелочи. Выглядит более логично, предыдущий вариант как-то через задницу получился, в базовый класс запихивать гетопт идея такая себе оказывается. Всем спасибо.