Comment placer la macro Q_PROPERTY
dans une autre macro d'aide?Macro Q_PROPERTY dans une autre macro
#define SimpleAllinOne(member, _type) \
public: \
void Set##member(_type _arg_##member) \
{ \
m_##member = _arg_##member;\
} \
_type Get##member() const\
{ \
return m_##member;\
} \
private: \
_type m_##member; \
Q_PROPERTY(_type member READ Get##member WRITE Set##member)
.. ne fonctionne pas. La sortie du préprocesseur (gcc -E flag
ou nmake/jom /P flag
) montre les méthodes setter/getter (de travail) et la variable membre correspondante, mais pas un seul caractère pour la ligne Q_PROPERTY
.
Mise à jour: Il semble fonctionner avec Qt5.1 qui étend correctement les macros de l'utilisateur. Qt4.8 ne fonctionne pas, Qt5.0 n'a pas été testé. Voir #QTBUG-35 (merci à ??).
Notez que 'Q_PROPERTY()' doit être étendu à rien par le préprocesseur sauf si 'Q_MOC_RUN' est défini. 'Q_PROPERTY()' n'est pas destiné à être vu par le compilateur, seulement par 'moc'. –