summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qversionnumber.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/tools/qversionnumber.h')
-rw-r--r--src/corelib/tools/qversionnumber.h16
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); }