forked from qt-creator/qt-creator
Utils: Make ssize and usize more generic
It now works for all container which implement std::size like C arrays. Change-Id: I9ccf2c50b4e7518e44890b52686d5561358bcf8d Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -218,14 +218,6 @@ OutputContainer setUnionMerge(InputContainer1 &&input1,
|
||||
template<class OutputContainer, class InputContainer1, class InputContainer2, class Merge>
|
||||
OutputContainer setUnionMerge(InputContainer1 &&input1, InputContainer2 &&input2, Merge merge);
|
||||
|
||||
/////////////////////////
|
||||
// usize / ssize
|
||||
/////////////////////////
|
||||
template<typename Container>
|
||||
std::make_unsigned_t<typename Container::size_type> usize(Container container);
|
||||
template<typename Container>
|
||||
std::make_signed_t<typename Container::size_type> ssize(Container container);
|
||||
|
||||
/////////////////////////
|
||||
// setUnion
|
||||
/////////////////////////
|
||||
@@ -1340,15 +1332,15 @@ OutputContainer setUnionMerge(InputContainer1 &&input1,
|
||||
}
|
||||
|
||||
template<typename Container>
|
||||
std::make_unsigned_t<typename Container::size_type> usize(Container container)
|
||||
auto usize(const Container &container)
|
||||
{
|
||||
return static_cast<std::make_unsigned_t<typename Container::size_type>>(container.size());
|
||||
return static_cast<std::make_unsigned_t<decltype(std::size(container))>>(std::size(container));
|
||||
}
|
||||
|
||||
template<typename Container>
|
||||
std::make_signed_t<typename Container::size_type> ssize(Container container)
|
||||
auto ssize(const Container &container)
|
||||
{
|
||||
return static_cast<std::make_signed_t<typename Container::size_type>>(container.size());
|
||||
return static_cast<std::make_signed_t<decltype(std::size(container))>>(std::size(container));
|
||||
}
|
||||
|
||||
template<typename Compare>
|
||||
|
||||
Reference in New Issue
Block a user