Utils: Add size functions to algorithms

So you can type Utils::usize(qVector) == Utils::usize(stdVector) without a
warning. You can write qVector.reserve(Utils::ssize(stdVector) etc..

Change-Id: If5b93b7daa8d4126cf588b0f025b99444bc8e8af
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Marco Bubke
2019-01-09 18:29:56 +01:00
parent 569e498c4d
commit 8bea373729

View File

@@ -849,4 +849,16 @@ OutputContainer setUnionMerge(InputContainer1 &&input1,
merge, merge,
std::less<std::decay_t<decltype(*std::begin(input1))>>{}); std::less<std::decay_t<decltype(*std::begin(input1))>>{});
} }
template<typename Container>
std::make_unsigned_t<typename Container::size_type> usize(Container container)
{
return static_cast<std::make_unsigned_t<typename Container::size_type>>(container.size());
}
template<typename Container>
std::make_signed_t<typename Container::size_type> ssize(Container container)
{
return static_cast<std::make_signed_t<typename Container::size_type>>(container.size());
}
} // namespace Utils } // namespace Utils