Я пытался проверить свои переданные параметры с помощью boost :: program_options. Моя команда имеет несколько режимов, каждый из которых имеет связанные параметры, которые можно указать. Что я пытаюсь сделать, так это убедиться, что эти связанные параметры передаются с режимом, то есть
unicorn --fly --magic-wings-threshold
где - fly
- это режим, а - magic-wings-threshold
- это связанный параметр. Я заметил, что если - magic-wings-threshold
имеет значение по умолчанию, например
("magic-wings-threshold,w", po::value<double>(&wings_thresh)->default_value(0.8, "0.8"),
"Magic wings maximum power"
)
, то я не могу использовать
if (vm.count("magic-wings-threshold")( {
// do stuff
}
, чтобы определить, передал ли пользователь этот параметр.
Похоже, что параметры значений по умолчанию всегда передаются и обнаруживаются в vm.count ()
. Кто-нибудь знает обходной путь или альтернативу?