Aktywne Wpisy

TurboEgo +23
czy jak człowiekowi resztki mózgu się starzeją to idzie na ryby, grzyby i interesuje się olimpiadą, gałą i polityką?
Nie znam ani jednej osoby w wieku do 25 r.ż. która by była zainteresowana powyższą tematyką (tzw boomerskim hobby) xD
Nie znam ani jednej osoby w wieku do 25 r.ż. która by była zainteresowana powyższą tematyką (tzw boomerskim hobby) xD

kontophone +29
źródło: temp_file6294847614579903576
Pobierz




Mam taki problemik, głowię się jak sprytnie zaimplementować listę ustawień, taką jak w uTorrent (advanced settings).
Tylko teraz jest problem bo mam trzy różne typy danych string, int, bool. Ale chciałbym to zrobić jak najbardziej zwięźle, czyli nie robić osobnych case dla każdego ustawienia i przepisywać ten sam kod wszędzie.
Myślałem, żeby zrobić szablon struktury konkretnego ustawienia i dodać do listy wskaźnik na tę strukturę, ale ostatecznie musiał bym go
zrzutowa na ogólny typ, więc później drugi raz na konkretny typ za każdym razem gdy chciałbym coś odczytać. I się robi bajzel ogromy ;/
Macie jakieś rady, bo albo muszę to zrobić na piechotę, albo czegoś nie mogę wymyśle ;/
albo boost::variant, ew. boost::any
@kuhar: To był mój pierwszy pomysł, ale odwołując się do klasy bazowej nie mogę oczekiwać dowolnego typu. I znowu wpadamy na boost::any...
Przykład z boostem
http://ideone.com/uQ0OL2
To nie mój projekt i nie wiem czy reszta będzie chciała boosta dodać. A po za tym tak jak kuhar powiedział, to tylko trzy typy więc może to obejdę.
Zrobiłbym po prostu kontener "czegoś co można ustawiać" z poszczególnymi "opcjami" konkretnego typu, oprogramować to uniwersalnie, dzięki czemu stworzenie takich ustawień ostatecznie powinno wyglądać na coś w stylu:
PanelUstawien limity = new