Есть ли способ узнать, какой ключ был задействован при сбое вызова, подобного следующему?
boost::program_options::variables_map vm;
...
int foo_bar = vm["some_key"].as<int>();
Если ключ отсутствует на карте или не может быть преобразован в int, я получаю довольно неинформативный bad_any_cast, и я не могу знать ничего из следующего:
Я не могу найти из любое решение, которое не связано ни с изменением заголовка boost, ни с переносом каждого вызова вышеупомянутого в блок try..catch. Я думаю, что это обычная проблема, так что, возможно, кто-то другой знает способ получше.