diff options
| author | Jędrzej Nowacki <jedrzej.nowacki@digia.com> | 2014-05-21 16:22:49 +0200 |
|---|---|---|
| committer | Jędrzej Nowacki <jedrzej.nowacki@digia.com> | 2014-07-30 10:20:28 +0200 |
| commit | 1f4b958438a7b9a7f8f3fd8139d10f5adf215a8d (patch) | |
| tree | 41e774fafc78bb520e23bfdcd2fafa029ad843f5 /src/corelib/json/qjsonobject.h | |
| parent | 8738f09b9fc1b35e3dc78211368d87069f3071f7 (diff) | |
Add initializer list support in QJsonObject.
It allows to create a QJsonObject instance in C++ by using
initializer list of pairs QString QJsonValue, for example:
QJsonObject o = {{"property1", 1}, {"property2", 2}};
[ChangeLog][QtCore][QtJson] QJsonObject now supports
C++11 initializer lists.
Task-number: QTBUG-26606
Change-Id: I67af881e175f427e563e685336c48a5f8466b476
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/json/qjsonobject.h')
| -rw-r--r-- | src/corelib/json/qjsonobject.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/corelib/json/qjsonobject.h b/src/corelib/json/qjsonobject.h index ad3184b1f28..92dd19af5e4 100644 --- a/src/corelib/json/qjsonobject.h +++ b/src/corelib/json/qjsonobject.h @@ -44,6 +44,10 @@ #include <QtCore/qjsonvalue.h> #include <QtCore/qiterator.h> +#ifdef Q_COMPILER_INITIALIZER_LISTS +#include <QtCore/qpair.h> +#include <initializer_list> +#endif QT_BEGIN_NAMESPACE @@ -55,6 +59,16 @@ class Q_CORE_EXPORT QJsonObject { public: QJsonObject(); + +#if defined(Q_COMPILER_INITIALIZER_LISTS) || defined(Q_QDOC) + QJsonObject(std::initializer_list<QPair<QString, QJsonValue> > args) + { + initialize(); + for (std::initializer_list<QPair<QString, QJsonValue> >::const_iterator i = args.begin(); i != args.end(); ++i) + insert(i->first, i->second); + } +#endif + ~QJsonObject(); QJsonObject(const QJsonObject &other); @@ -195,6 +209,7 @@ private: friend Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonObject &); QJsonObject(QJsonPrivate::Data *data, QJsonPrivate::Object *object); + void initialize(); void detach(uint reserve = 0); void compact(); |
