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