From 66a7e4361f9f07962c7d22409aa6274da2dce9de Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Mon, 4 Apr 2011 12:32:24 +0200 Subject: QStringList: constructor for std::initializer_list Reviewed-by: Joao --- src/corelib/tools/qstringlist.h | 3 +++ tests/auto/qstringlist/tst_qstringlist.cpp | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/corelib/tools/qstringlist.h b/src/corelib/tools/qstringlist.h index a211430..a0290bc 100644 --- a/src/corelib/tools/qstringlist.h +++ b/src/corelib/tools/qstringlist.h @@ -70,6 +70,9 @@ public: inline explicit QStringList(const QString &i) { append(i); } inline QStringList(const QStringList &l) : QList(l) { } inline QStringList(const QList &l) : QList(l) { } +#ifdef Q_COMPILER_INITIALIZER_LISTS + inline QStringList(std::initializer_list args) : QList(args) { } +#endif inline void sort(); inline int removeDuplicates(); diff --git a/tests/auto/qstringlist/tst_qstringlist.cpp b/tests/auto/qstringlist/tst_qstringlist.cpp index 283c17f..d8db00a 100644 --- a/tests/auto/qstringlist/tst_qstringlist.cpp +++ b/tests/auto/qstringlist/tst_qstringlist.cpp @@ -78,6 +78,8 @@ private slots: void join() const; void join_data() const; void joinEmptiness() const; + + void initializeList() const; }; extern const char email[]; @@ -321,5 +323,16 @@ void tst_QStringList::joinEmptiness() const QVERIFY(string.isNull()); } +void tst_QStringList::initializeList() const +{ +#ifdef Q_COMPILER_INITIALIZER_LISTS + QStringList v1{QLatin1String("hello"),"world",QString::fromLatin1("plop")}; + QCOMPARE(v1, (QStringList() << "hello" << "world" << "plop")); + QCOMPARE(v1, (QStringList{"hello","world","plop"})); +#else + QSKIP("Require C++0x support, pass the right flag to the compiler", SkipAll); +#endif +} + QTEST_APPLESS_MAIN(tst_QStringList) #include "tst_qstringlist.moc" -- cgit v0.12