Once call - w pętli

0

Witam,

korzystam z visual studio 2010. Aplikacja pisana w C++.

Mam szczytywanie linii z pliku:

void ConfigChecker::parse_file(std::string line);

Ta funkcja jest wywoływana dla każdej nowej linii w pliku.
Wewnątrz funkcji chce aby za pierwszym tylko razem wykonała się inna funkcja. Tutaj także potrzebne jest ustawianie flagi. Gdyż Klasa istnieje w programie tylko raz jako instancja a plik można ładować kilka razy.

mutex i threads odpadają pytanie czy warto korzystać z biblioteki boost/threads ? Czy inny rozsądny sposób ?

0

Mam szczytywanie
szczytowanie chyba.

Wewnątrz funkcji chce aby za pierwszym tylko razem wykonała się inna funkcja.
zrób po prostu pole typu bool w klasie ConfigChecked.

mutex i threads odpadają pytanie czy warto korzystać z biblioteki boost/threads
skąd nagle wątki?

a plik można ładować kilka razy.
wydaje mi się, że za mało napisałeś. czy „inna funkcja” ma się wykonać dla pierwszej linii w pliku, czy dla pierwszej linii podczas pierwszego ładowania pliku?
jeśli to pierwsze, to „inną funkcję” uruchamiaj po prostu na początku pętli wczytującej linie z pliku (czyli poza funkcją parse_file). jeśli to drugie, to chyba coś jest nie tak z projektem, ale

korzystam z visual studio 2010. Aplikacja pisana w C++.
natywna czy .net? bo w C++/CLI jest coś takiego jak statyczny konstruktor, który może się w twojej sytuacji przydać.

0
Azarien napisał(a)

Mam szczytywanie
szczytowanie chyba.
Very funny :P następnym razem proszę o coś konstruktywnego.

Wewnątrz funkcji chce aby za pierwszym tylko razem wykonała się inna funkcja.
zrób po prostu pole typu bool w klasie ConfigChecked.
**Ustawianie tej zmiennej w takim razie powinno być wewnątrz funkcji którą podałem wyżej wtedy dla np. 10 tysięcy linii które mają być wczytane będziemy 10 tysięcy razy sprawdzać czy ustawiliśmy flagę... mija się z celem. **

mutex i threads odpadają pytanie czy warto korzystać z biblioteki boost/threads
skąd nagle wątki?
Czemu wątki bo dla takich rozwiązań (once call in loop itp...) znalazłem właśnie przykłady z tymi elementami -> http://codereview.stackexchange.com/questions/4422/run-once-macro-how-bad-idea

a plik można ładować kilka razy.
wydaje mi się, że za mało napisałeś. czy „inna funkcja” ma się wykonać dla pierwszej linii w pliku, czy dla pierwszej linii podczas pierwszego ładowania pliku?
jeśli to pierwsze, to „inną funkcję” uruchamiaj po prostu na początku pętli wczytującej linie z pliku (czyli poza funkcją parse_file). jeśli to drugie, to chyba coś jest nie tak z projektem, ale
Pisząc inne możliwości nie miałem na myśli tworzenia nowej metody i potrzeby jej wykonania by ustawić flagę ... można to zrobić inaczej a założeniem klasy jest takie że właśnie ta metoda jest pierwsza przy wywołaniu i ładowaniu pliku

korzystam z visual studio 2010. Aplikacja pisana w C++.
natywna czy .net? bo w C++/CLI jest coś takiego jak statyczny konstruktor, który może się w twojej sytuacji przydać.

statyczny konstruktor hmmm :) wydaje mi się że napisałem iż klasa jest oparta o singleton

0

wydaje mi się że napisałem iż klasa jest oparta o singleton
Nic takiego nie napisałeś.
Nie odpowiedziałeś na istotne pytanie:

Azarien napisał(a)

czy „inna funkcja” ma się wykonać dla pierwszej linii w pliku, czy dla pierwszej linii podczas pierwszego ładowania pliku?

Pokaż więcej kodu. Ta jedna linijka to za mało.

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