Add missing constexpr specifier to two iterators
The classes themselves and their equality operators are used in constexpr functions/ctors (in QKeyValueIterator) so Visual Studio 2017 expects them to be marked constexpr as well. Currently this causes a compilation error when instantiating a QKeyValueIterator using either of these iterators. Change-Id: I2e3eeaf3b3f11f381a63875e6575dfd82fe56fcb Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
627f0a7f7d
commit
5b24d3dd35
@ -373,7 +373,7 @@ public:
|
|||||||
typedef const T *pointer;
|
typedef const T *pointer;
|
||||||
typedef const T &reference;
|
typedef const T &reference;
|
||||||
|
|
||||||
inline const_iterator() : i(Q_NULLPTR) { }
|
Q_DECL_CONSTEXPR inline const_iterator() : i(Q_NULLPTR) { }
|
||||||
explicit inline const_iterator(void *node)
|
explicit inline const_iterator(void *node)
|
||||||
: i(reinterpret_cast<QHashData::Node *>(node)) { }
|
: i(reinterpret_cast<QHashData::Node *>(node)) { }
|
||||||
#ifdef QT_STRICT_ITERATORS
|
#ifdef QT_STRICT_ITERATORS
|
||||||
@ -387,8 +387,8 @@ public:
|
|||||||
inline const T &value() const { return concrete(i)->value; }
|
inline const T &value() const { return concrete(i)->value; }
|
||||||
inline const T &operator*() const { return concrete(i)->value; }
|
inline const T &operator*() const { return concrete(i)->value; }
|
||||||
inline const T *operator->() const { return &concrete(i)->value; }
|
inline const T *operator->() const { return &concrete(i)->value; }
|
||||||
inline bool operator==(const const_iterator &o) const { return i == o.i; }
|
Q_DECL_CONSTEXPR inline bool operator==(const const_iterator &o) const { return i == o.i; }
|
||||||
inline bool operator!=(const const_iterator &o) const { return i != o.i; }
|
Q_DECL_CONSTEXPR inline bool operator!=(const const_iterator &o) const { return i != o.i; }
|
||||||
|
|
||||||
inline const_iterator &operator++() {
|
inline const_iterator &operator++() {
|
||||||
i = QHashData::nextNode(i);
|
i = QHashData::nextNode(i);
|
||||||
|
@ -473,7 +473,7 @@ public:
|
|||||||
typedef const T *pointer;
|
typedef const T *pointer;
|
||||||
typedef const T &reference;
|
typedef const T &reference;
|
||||||
|
|
||||||
inline const_iterator() : i(Q_NULLPTR) { }
|
Q_DECL_CONSTEXPR inline const_iterator() : i(Q_NULLPTR) { }
|
||||||
inline const_iterator(const Node *node) : i(node) { }
|
inline const_iterator(const Node *node) : i(node) { }
|
||||||
#ifdef QT_STRICT_ITERATORS
|
#ifdef QT_STRICT_ITERATORS
|
||||||
explicit inline const_iterator(const iterator &o)
|
explicit inline const_iterator(const iterator &o)
|
||||||
@ -486,8 +486,8 @@ public:
|
|||||||
inline const T &value() const { return i->value; }
|
inline const T &value() const { return i->value; }
|
||||||
inline const T &operator*() const { return i->value; }
|
inline const T &operator*() const { return i->value; }
|
||||||
inline const T *operator->() const { return &i->value; }
|
inline const T *operator->() const { return &i->value; }
|
||||||
inline bool operator==(const const_iterator &o) const { return i == o.i; }
|
Q_DECL_CONSTEXPR inline bool operator==(const const_iterator &o) const { return i == o.i; }
|
||||||
inline bool operator!=(const const_iterator &o) const { return i != o.i; }
|
Q_DECL_CONSTEXPR inline bool operator!=(const const_iterator &o) const { return i != o.i; }
|
||||||
|
|
||||||
inline const_iterator &operator++() {
|
inline const_iterator &operator++() {
|
||||||
i = i->nextNode();
|
i = i->nextNode();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user