std:vector iterator problem?
-
Wie ist denn GetGroup() defieniert? Wenn es eine Kopie zurückgibt, hast du ein Problem - die Kopie des lokalen vector<>s ist temporär und wird am Ende der Zuweisung wieder gelöscht.
-
ja gibt ne kopie zurück... schade:)
-
Warum änderst du die Funktion nicht, daß sie eine const-Referenz stattdessen zurückgibt? (ist sowieso vom Zeitaufwand günstiger)
-
class SysConf { std::vector<CModule*> const& get_group(std::wstring const&) const; }; // --- std::vector<CModul*> arr(m_pSysConf->get_group(strProcessName));
-
std::vector<CModule*> const& get_group(std::wstring const&) const{ std::vector<CModule*> tmp; for(... ) { tmp.pushback(...); } return tmp; }deswegen;)

-
OK, das ist ein Argument - könnte aber auch auf fehlerhaftes Design hindeuten

-
...dann übergib der Methode eine Referenz auf einen vector, welchen Du dann füllst.
-
gute idee... naja ich weis, aber es geht nich anders...
-
Es ginge auch
std::vector<CModule*> const& get_group(std::wstring const&) const { static std::vector<CModule*> tmp; tmp.clear(); for(... ) { tmp.pushback(...); } return tmp; }, wobei die Werte im vector natürlich nur bis zum nächsten Aufruf gültig sind

-
Badestrand schrieb:
wobei die Werte im vector natürlich nur bis zum nächsten Aufruf gültig sind

Threadsafe ists auch nicht

Wie wäre es denn mit Annahme der Kopie als lokale Variable und bilden eines Iterators auf die Kopie? Oder schlägt die Kopierphobie wieder durch?

-
ne ich werd morgen das desgin ändern...;) wenn ich fitter bin:) nach 6 stunden Proggen hacked man nur noch was rein das es funktioniert:)
-
lol, ja, 6 stunden, oh wie lange

-
jepp
8 stunden sind normal pflicht...:) naja bei parallen Projekten gehts noch:)