From e3f328e4a24e2161fba58585e9f607c429b24c1b Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Fri, 29 Jan 2010 23:49:59 +0100 Subject: delete all members of containers with std::for_each --- src/base/songloading/songloader.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/base/songloading') diff --git a/src/base/songloading/songloader.cpp b/src/base/songloading/songloader.cpp index b86f3100..9c1401ec 100644 --- a/src/base/songloading/songloader.cpp +++ b/src/base/songloading/songloader.cpp @@ -42,14 +42,17 @@ namespace usdx strategies[".xml"] = new SongloadingStrategyXml(); } - Songloader::~Songloader(void) + void remove_element(std::pair e) { - std::map::iterator it; - for (it = strategies.begin(); it != strategies.end(); it++) { - delete it->second; - it->second = NULL; - } + delete e.second; + e.second = NULL; + } + Songloader::~Songloader(void) + { + // clear memory for all elements in the map + std::for_each(strategies.begin(), strategies.end(), + remove_element); strategies.clear(); // remove reference from singleton to make regeneration possible -- cgit v1.2.3