Wpis z mikrobloga

#programowanie #cpp #mfc

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 ;/
  • 8
@sylwke3100: No po pierwszych próbach też szukałem i fakt to by bardzo pomogło, ale nie chcę używać boosta, jeżeli się uda :)

@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...
@sylwke3100: @kuhar: Dobra, dzięki panowie. Wykombinuje coś. Przynajmniej wiem, że nie przegapiłem jakiegoś oczywistego rozwiązania.

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ę.
@kasper93: Mocno mieszasz tutaj poziomy abstrakcji, mówisz o liście ustawień (całym jakby komponencie), a zaraz o case, wskaźnikach itd. i robieniu "na piechotę". czy przez robienie na piechotę masz na myśli kopiowanie kodu 100x? Przecież można zrobić na piechotę (także z case) a dobrze.

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