Мой ответ приходит слишком поздно, но я потратил некоторое время, пытаясь сделать что-то подобное, и нашел раздражающе очевидное решение (если кто-то еще ищет это) ...
Напоминая, что boost::program_options::variables_map
происходит от std::map<std::string, boost::program_options::variable_value>
, вы можете выполнять совершенно легальную обработку карты STL, включая вставку ...
namespace po = boost::program_options;
po::variables_map vm;
vm.insert(std::make_pair("MyNewEmptyOption", po::variable_value());
vm.insert(std::make_pair("MyNewIntOption", po::variable_value(32, false));
po::notify(vm);
-Edmond-