summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qmetaobject.h
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@woboq.com>2013-09-14 13:18:15 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-14 20:33:29 +0200
commit7d7e8ae3fa79b06c916de1a7a10eed63611c5d25 (patch)
treebd663644f5f3d46e8760e0de908e2faaf5fff12e /src/corelib/kernel/qmetaobject.h
parent6b9d1256214839dd18b2ba5c6fc6f007cf21869f (diff)
Use Q_STATIC_ASSERT to report error about missing Q_OBJECT
Q_STATIC_ASSERT gives better error with C++11 enabled. Aslo the qt_check_for_QOBJECT_macro had warning on some compiler since it used null reference Change-Id: Ic6115da800064b00c50a5762f0b79f5f656bf750 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/kernel/qmetaobject.h')
-rw-r--r--src/corelib/kernel/qmetaobject.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/corelib/kernel/qmetaobject.h b/src/corelib/kernel/qmetaobject.h
index 0c8ad8591f..818613195d 100644
--- a/src/corelib/kernel/qmetaobject.h
+++ b/src/corelib/kernel/qmetaobject.h
@@ -148,8 +148,8 @@ public:
static inline QMetaMethod fromSignal(Func signal)
{
typedef QtPrivate::FunctionPointer<Func> SignalType;
- reinterpret_cast<typename SignalType::Object *>(0)->qt_check_for_QOBJECT_macro(
- *reinterpret_cast<typename SignalType::Object *>(0));
+ Q_STATIC_ASSERT_X(QtPrivate::HasQ_OBJECT_Macro<typename SignalType::Object>::Value,
+ "No Q_OBJECT in the class with the signal");
return fromSignalImpl(&SignalType::Object::staticMetaObject,
reinterpret_cast<void **>(&signal));
}