diff --git a/Source/cmVariableWatch.cxx b/Source/cmVariableWatch.cxx index cb6cb12965..b8a6df2e03 100644 --- a/Source/cmVariableWatch.cxx +++ b/Source/cmVariableWatch.cxx @@ -34,21 +34,16 @@ cmVariableWatch::cmVariableWatch() { } +template +void deleteAllSecond(typename C::value_type it) +{ + cmDeleteAll(it.second); +} + cmVariableWatch::~cmVariableWatch() { - cmVariableWatch::StringToVectorOfPairs::iterator svp_it; - - for ( svp_it = this->WatchMap.begin(); - svp_it != this->WatchMap.end(); ++svp_it ) - { - cmVariableWatch::VectorOfPairs::iterator p_it; - - for ( p_it = svp_it->second.begin(); - p_it != svp_it->second.end(); ++p_it ) - { - delete *p_it; - } - } + std::for_each(this->WatchMap.begin(), this->WatchMap.end(), + deleteAllSecond); } bool cmVariableWatch::AddWatch(const std::string& variable,