Я пытался проверить мои переданные параметры с помощью 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()
. Кто-нибудь знает обходной путь или альтернативу?