diff options
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/tools/qpair.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/corelib/tools/qpair.h b/src/corelib/tools/qpair.h index 501f2af3e6..29eb58bd22 100644 --- a/src/corelib/tools/qpair.h +++ b/src/corelib/tools/qpair.h @@ -65,6 +65,22 @@ struct QPair T2 second; }; +// mark QPair<T1,T2> as complex/movable/primitive depending on the +// typeinfos of the constituents: +template<class T1, class T2> +class QTypeInfo< QPair<T1, T2> > +{ +public: + enum { + isComplex = QTypeInfo<T1>::isComplex || QTypeInfo<T2>::isComplex, + isStatic = QTypeInfo<T1>::isStatic || QTypeInfo<T2>::isStatic, + isLarge = sizeof(QPair<T1, T2>) > sizeof(void*), + isPointer = false, + isDummy = false, + sizeOf = sizeof(QPair<T1, T2>) + }; +}; + template <class T1, class T2> Q_INLINE_TEMPLATE bool operator==(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2) { return p1.first == p2.first && p1.second == p2.second; } |