summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qoffsetstringarray_p.h
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2022-10-07 16:50:42 +0200
committerMarc Mutz <marc.mutz@qt.io>2022-10-07 18:11:02 +0200
commitd4e62a9768c4ce4964f65cca15b3da0a36b910f1 (patch)
tree7d606350f03e9628bc515bf7900ba583e0a15da1 /src/corelib/tools/qoffsetstringarray_p.h
parentd6250e2a0da4901e35e8d5fe18b716ff81e06a7e (diff)
Short live q20::transform()!
It just adds constexpr to it (we're ignoring the range version). Apply it to QOffsetStringArray, where it replaces the copyData() function. Pick-to: 6.4 Change-Id: I6caf3b5fd2e60f4fcb0b116684c3ad6a8043f38e Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/corelib/tools/qoffsetstringarray_p.h')
-rw-r--r--src/corelib/tools/qoffsetstringarray_p.h14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/corelib/tools/qoffsetstringarray_p.h b/src/corelib/tools/qoffsetstringarray_p.h
index 4083487175..2a0e6de55b 100644
--- a/src/corelib/tools/qoffsetstringarray_p.h
+++ b/src/corelib/tools/qoffsetstringarray_p.h
@@ -70,16 +70,6 @@ private:
};
namespace QtPrivate {
-// std::copy is not constexpr in C++17
-template <typename II, typename OO>
-static constexpr OO copyData(II input, qsizetype n, OO output)
-{
- using E = decltype(+*output);
- for (qsizetype i = 0; i < n; ++i)
- output[i] = E(input[i]);
- return output + n;
-}
-
template <size_t Highest> constexpr auto minifyValue()
{
if constexpr (Highest <= (std::numeric_limits<quint8>::max)()) {
@@ -137,7 +127,9 @@ constexpr auto makeOffsetStringArray(StringExtractor extractString, const T &...
// prepend zero
std::array<MinifiedOffsetType, Count + 1> minifiedOffsetList = {};
- QtPrivate::copyData(fullOffsetList.begin(), Count, minifiedOffsetList.begin() + 1);
+ q20::transform(fullOffsetList.begin(), fullOffsetList.end(),
+ minifiedOffsetList.begin() + 1,
+ [] (auto e) { return MinifiedOffsetType(e); });
std::array staticString = QtPrivate::makeStaticString<StringLength>(extractString, entries...);
return QOffsetStringArray(staticString, minifiedOffsetList);