9#include "./singleton.h"
12#define PIMPL_D(Class) Class::Private * const d = d_func()
13#define PIMPL_Q(Class) Class * const q = q_func()
14#define PIMPL_DECLARE_PRIVATE(Class)\
15 inline Class::Private* d_func() {\
16 return reinterpret_cast<Class::Private*>(d_ptr.get());\
18 inline const Class::Private* d_func() const {\
19 return reinterpret_cast<const Class::Private *>(d_ptr.get());\
21 friend class Class::Private;
22#define PIMPL_DECLARE_PUBLIC(Class) \
23 inline Class* q_func() { return reinterpret_cast<Class *>(q_ptr); } \
24 inline const Class* q_func() const { return reinterpret_cast<const Class *>(q_ptr); } \
113#define PIMPL_D(Class)
130#define PIMPL_Q(Class)
146#define PIMPL_DECLARE_PRIVATE(Class)
162#define PIMPL_DECLARE_PUBLIC(Class)
bool isNull() const
Check if the private class is null.
virtual void clear()
Clear the private class.
virtual ~PimplClass()
Destroy the PimplClass object.
PimplClass(Private &dd)
Construct a new PimplClass object.
std::unique_ptr< Private > d_ptr
The private class pointer.
The PimplClass::Private class.