Introduce static_container_cast

Casting all elements of a container, similar to qobject_container_cast.

Change-Id: Ib455fe8c7fa0d4acda7e29685c3100638a0152f8
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Eike Ziller
2018-05-29 10:59:27 +02:00
parent 7ad738d236
commit bb28b10add
5 changed files with 21 additions and 9 deletions

View File

@@ -626,6 +626,20 @@ Container<T> qobject_container_cast(const Container<Base> &container)
return result;
}
//////////////////
// static_container_cast
/////////////////
template <class T, template<typename> class Container, typename Base>
Container<T> static_container_cast(const Container<Base> &container)
{
Container<T> result;
reserve(result, container.size());
auto ins = inserter(result);
for (Base val : container)
ins = static_cast<T>(val);
return result;
}
//////////////////
// sort
/////////////////