diff options
author | Marc Mutz <marc.mutz@qt.io> | 2022-10-07 16:50:42 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2022-10-07 18:11:02 +0200 |
commit | d4e62a9768c4ce4964f65cca15b3da0a36b910f1 (patch) | |
tree | 7d606350f03e9628bc515bf7900ba583e0a15da1 /src/corelib/tools/qoffsetstringarray_p.h | |
parent | d6250e2a0da4901e35e8d5fe18b716ff81e06a7e (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.h | 14 |
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); |