diff options
Diffstat (limited to 'src/corelib/tools/qversionnumber.h')
-rw-r--r-- | src/corelib/tools/qversionnumber.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/corelib/tools/qversionnumber.h b/src/corelib/tools/qversionnumber.h index ad8367c135..f00ce36437 100644 --- a/src/corelib/tools/qversionnumber.h +++ b/src/corelib/tools/qversionnumber.h @@ -141,12 +141,15 @@ class QVersionNumber else pointer_segments = new QList<int>(std::move(seg)); } - SegmentStorage(std::initializer_list<int> args) + explicit SegmentStorage(std::initializer_list<int> args) + : SegmentStorage(args.begin(), args.end()) {} + + explicit SegmentStorage(const int *first, const int *last) { - if (dataFitsInline(std::data(args), args.size())) { - setInlineData(std::data(args), args.size()); + if (dataFitsInline(first, last - first)) { + setInlineData(first, last - first); } else { - pointer_segments = new QList<int>(args); + pointer_segments = new QList<int>(first, last); } } @@ -234,6 +237,11 @@ public: : m_segments(args) {} + template <qsizetype N> + explicit QVersionNumber(const QVarLengthArray<int, N> &sec) + : m_segments(sec.begin(), sec.end()) + {} + inline explicit QVersionNumber(int maj) { m_segments.setSegments(1, maj); } |