From d4e62a9768c4ce4964f65cca15b3da0a36b910f1 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 7 Oct 2022 16:50:42 +0200 Subject: Short live q20::transform()! MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- src/corelib/tools/qoffsetstringarray_p.h | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) (limited to 'src/corelib/tools/qoffsetstringarray_p.h') 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 -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 constexpr auto minifyValue() { if constexpr (Highest <= (std::numeric_limits::max)()) { @@ -137,7 +127,9 @@ constexpr auto makeOffsetStringArray(StringExtractor extractString, const T &... // prepend zero std::array 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(extractString, entries...); return QOffsetStringArray(staticString, minifiedOffsetList); -- cgit v1.2.3