Parametry argv w dowolnej kolejności

0

Witam,

Jak najlepiej zrobic, aby mozna było pisać w stylu:

program -f file.txt -m some_message
program -m some_message -f file.txt

Czy po prostu szukać w tablicy argv "-m" i potem pobierać nastepny indeks w tablicy jako wartośc parametru, czy może są jakies wbudowane funkcje do obsługi tego ?

dzięki.

0

Wbudowane nie, ale masz TCLAP ( bardzo łatwe i fajne ).

0

boost::program_options, bardzo przyjemne narzędzie :)</url>

0

Tak, ale mnie razi to, że trzeba linkować i wielkość Boosta.

0

Skoro Cię razi, to użyj precompiled headers w Visualu lub gcc :) I już za sposób napisania boosta płacisz tylko raz (ewentualnie na początku kilka razy, jeśli nie możesz się za pierwszym razem zdecydować, co ma być w pch), a biblioteka jest naprawdę dobra.

0

dziękuję bardzo... sprawdze sobie TCLAP.

0
Sasik napisał(a)

Skoro Cię razi, to użyj precompiled headers w Visualu lub gcc :) I już za sposób napisania boosta płacisz tylko raz (ewentualnie na początku kilka razy, jeśli nie możesz się za pierwszym razem zdecydować, co ma być w pch), a biblioteka jest naprawdę dobra.

To że jest dobra to wiem, ale wolę poczekać na C++0x

0

Skoro Boost cię przerasta to nie licz na to, że z C++0x sobie poradzisz.

0
asdf napisał(a)

Skoro Boost cię przerasta to nie licz na to, że z C++0x sobie poradzisz.
Nie przeraża tylko razi, a to spora różnica. Korzystać umiem, ale nie chcę, bo to krowa jest.

0

jassne że krowa. od roku z okładem używam Boosta, i zwiększa on program nie bardziej niż stdlib. Narzut boosta na aplikację jest minimalny - nawet jeśli chodzi o sekcję kodu. Kompilacja może dłużej trwać, ale nie rozumiem ludzi, co narzekają na szybkość kompilacji: mam 5-letni procek 1500MHz i nigdy praktycznie nie narzekam (może dlatego, że lubię zapalić, gdy kompilacja idzie ;))

Powiedzmy sobie jasno: SAM boost jest krowa, kompilowałem go z 8 godzin, ale programy go używające NIE. Ponadto 90% boosta jest header only i nawet jego kompilację można sobie odpuścić.

A propos tego 90%: pewnie właśnie z 90% biblioteki nie znam, bo do tej pory nie potrzebowałem. Innymi słowy: poczytałem, ale nie użyłem w praktyce - u mnie na wsi to oznacza: korzystać NIE UMIEM, może się nauczę, ale teraz nie umiem i kropka.

0

korcilo mnie zeby napisac m/wiecej to samo, od postu winterfresha o boost'cie.. dzieki ze mnie wyreczyles :D
lenie kompilowanie moga sobie pod msvc darowac - wystarczy sciagnac wersje precompiled..
a faktu ze to minimalne nie-header-only cokolwiek jest faktycznie linkowane i tak sie nie zauwazy, bo boost w wiekszosci korzysta z pragma comment lib..

0

Tak, ale kto by wymyślił, że trzeba dołączać bibliotekę by użyć głupiej obsługi linii poleceń, z TCLAP nie mam tego problemu, bo to na samych headerach jest oparte, wątki wolę z OpenThread, a reszty i tak bym nie wykorzystał, a nawet jeśli to w dalekiej przyszłości, bo mam jeszcze czas by zacząć programować "na poważnie", a do tego czasu to będzie C++11 :D

0

albo c++12 z nowa eurobiblioteka, pod ktora bedziesz mogl {scoped_ptr<Player>(&goalkeeper);}assert(goal); :P

0

mały OT: a jaki wyjątek będzie rzucało kupowanie meczy?

0

"You haven't enough cash" xD

0

match::result_exceptional ? :]

1 użytkowników online, w tym zalogowanych: 0, gości: 1