boostorg / boostorg/program_options
Why doesn't `allow_unregistered` work for me?
- Vorherrschende Sprache
- C++
- Sterne
- 136
- Forks
- 117
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
I still get `too many positional options have been specified on the command line` on `run()`
The excerpt
```c++
boost::program_options::variables_map vm;
try{
auto parsed = boost::program_options::command_line_parser(rawArgs.argc, rawArgs.argv).options(oDesc).positional(pd).allow_unregistered().run(); //too many positional options have been specified on the command line
boost::program_options::store(parsed, vm);
boost::program_options::notify(vm);
auto rest = boost::program_options::collect_unrecognized(parsed.options, boost::program_options::collect_unrecognized_mode::include_positional);
} catch(std::exception &ex) {
PROCESS_CASE_OF_SYNTAX_ERROR_WHATABLE_EXCEPTION(ex);
}
```
The full source is here: https://github.com/HydrArgs/HydrArgs/blob/master/backends/BoostArgs.cpp
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne mit der verlinkten Quelldatei in backends/BoostArgs.cpp und verfolge die Einrichtung von command_line_parser durch options(oDesc), positional(pd) und allow_unregistered(). Reproduziere den run()-Fehler mit den gezeigten rawArgs und ermittle anschließend, warum das Positionslimit überschritten wird; abgeschlossen ist die Aufgabe, wenn die vorgesehenen nicht registrierten Argumente diese Ausnahme nicht mehr auslösen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp
- Bereich
- cli
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 30/100