[QtScript] registering and handling QPair
-
I have a few slots that return a QPair and I would like to call them from a script.
I'm trying to register QPair but @Q_DECLARE_METATYPE(QPair<bool,QString>)@ won't compile.
I've found this commit: http://gitorious.org/qtscript-smoke/qtscript-smoke/commit/3edb118abfbdd61f0de00e66cd45f65263f77900/diffs
where is declared:
@/*
Allows a metatype to be declared for a type containing a single comma.
For example:
Q_DECLARE_METATYPE2(QList<QPair<QByteArray,QByteArray> >)
*/
#define Q_DECLARE_METATYPE2(TYPE1, TYPE2)
QT_BEGIN_NAMESPACE
template <>
struct QMetaTypeId< TYPE1,TYPE2 >
{
enum { Defined = 1 };
static int qt_metatype_id()
{
static QBasicAtomicInt metatype_id = Q_BASIC_ATOMIC_INITIALIZER(0);
if (!metatype_id)
metatype_id = qRegisterMetaType< TYPE1,TYPE2 >( #TYPE1 "," #TYPE2 );
return metatype_id;
}
};
QT_END_NAMESPACE@
This time @Q_DECLARE_METATYPE2(QPair<bool,QString>)@ will compile but it triggers an infinitely recursive loop at execution.Any help will be much appreciated