2010-08-10 8 views
6

Używany przeze mnie kod składa się z zestawu modułów, skompilowanych do poszczególnych bibliotek. Biblioteki z kolei są łączone w różne kombinacje, aby budować różne pliki binarne.Korzystanie z Boost.Program_options w programie modułowym

Jest to dość porządkowe.

Różne moduły używają różnych argumentów wiersza poleceń i chcę użyć Boost.Program_options do parsowania.

Ponieważ zestaw argumentów wiersza poleceń zależy od tego, które biblioteki są połączone, nie wiem z góry wszystkich argumentów i dlatego nie można ich dodać do opcji program_opcje :: options_description.

W jaki sposób można włączyć dla każdego modułu argumenty wiersza poleceń, a następnie je odczytać?

Dzięki

Odpowiedz

6

E.g. za pomocą options_description s funkcję składową add(const options_description & desc) zebrać opcje ze swoich modułów w jednym opisem:

options_description & add(const options_description & desc) ;
Dodaje grupę opisem opcji. Ma to taki sam efekt, jak dodawanie pojedynczo, z wyjątkiem tego, że operator wyjściowy pokaże oddzielną grupę. Zwraca *this.

Opcje wyodrębniania można po prostu wykonać, przekazując np. variables_map wokół modułów.