These macros are different:
#define Q_DECLARE_PRIVATE(Class) \
inline Class##Private* d_func() { return reinterpret_cast<Class##Private *>(qGetPtrHelper(d_ptr)); } \
inline const Class##Private* d_func() const { return reinterpret_cast<const Class##Private *>(qGetPtrHelper(d_ptr)); } \
friend class Class##Private;
#define Q_DECLARE_PRIVATE_D(Dptr, Class) \
inline Class##Private* d_func() { return reinterpret_cast<Class##Private *>(Dptr); } \
inline const Class##Private* d_func() const { return reinterpret_cast<const Class##Private *>(Dptr); } \
friend class Class##Private;
#define Q_DECLARE_PRIVATE(Class) \
inline Class##Private* d_func() { return reinterpret_cast<Class##Private *>(qGetPtrHelper(d_ptr)); } \
inline const Class##Private* d_func() const { return reinterpret_cast<const Class##Private *>(qGetPtrHelper(d_ptr)); } \
friend class Class##Private;
#define Q_DECLARE_PRIVATE_D(Dptr, Class) \
inline Class##Private* d_func() { return reinterpret_cast<Class##Private *>(Dptr); } \
inline const Class##Private* d_func() const { return reinterpret_cast<const Class##Private *>(Dptr); } \
friend class Class##Private;
To copy to clipboard, switch view to plain text mode
diferrent part
Q_DECLARE_PRIVATE
(qGetPtrHelper(d_ptr));
(qGetPtrHelper(d_ptr));
To copy to clipboard, switch view to plain text mode
Q_DECLARE_PRIVATE_D
(Dptr);
(Dptr);
To copy to clipboard, switch view to plain text mode
but I really do not know why... Maybe it is bug in Qt?
I think that Q_DECLARE_PRIVATE_D macro should work with QScopedPointer similar as Q_DECLARE_PRIVATE macro.
Added after 13 minutes:
anda_skoa yes, it works but i wonder why they changed Q_DECLARE_PRIVATE_D macro and we can not pass QScopedPointer directly like in Q_DECLARE_PRIVATE.
Bookmarks