cmAlgorithms: Rename template type in cmDeleteAll algorithm.

It may be any range, not only a container.
This commit is contained in:
Stephen Kelly 2015-02-20 21:52:36 +01:00
parent cb75eec0b4
commit 47a3e22ea5

View File

@ -105,19 +105,19 @@ struct cmIsPair<std::pair<K, V> >
enum { value = true }; enum { value = true };
}; };
template<typename Container, template<typename Range,
bool valueTypeIsPair = cmIsPair<typename Container::value_type>::value> bool valueTypeIsPair = cmIsPair<typename Range::value_type>::value>
struct DefaultDeleter struct DefaultDeleter
{ {
void operator()(typename Container::value_type value) const { void operator()(typename Range::value_type value) const {
delete value; delete value;
} }
}; };
template<typename Container> template<typename Range>
struct DefaultDeleter<Container, /* valueTypeIsPair = */ true> struct DefaultDeleter<Range, /* valueTypeIsPair = */ true>
{ {
void operator()(typename Container::value_type value) const { void operator()(typename Range::value_type value) const {
delete value.second; delete value.second;
} }
}; };
@ -187,11 +187,11 @@ cmRange(Range const& range)
range.begin(), range.end()); range.begin(), range.end());
} }
template<typename Container> template<typename Range>
void cmDeleteAll(Container const& c) void cmDeleteAll(Range const& r)
{ {
std::for_each(c.begin(), c.end(), std::for_each(r.begin(), r.end(),
ContainerAlgorithms::DefaultDeleter<Container>()); ContainerAlgorithms::DefaultDeleter<Range>());
} }
template<typename Range> template<typename Range>