Расширение макроса в moc

Я хотел бы сохранить некоторую информацию о классе, используя макрос Q_CLASSINFO. Однако я хотел бы обернуть его в свой собственный макрос, например:

#define DB_TABLE( TABLE ) \
    Q_CLASSINFO( "db_table", #TABLE )

#define DB_FIELD( PROPERTY, COLUMN ) \
    Q_CLASSINFO( "dbcol_" #PROPERTY, #COLUMN )

class Foo : public QObject
{
    Q_OBJECT
    DB_TABLE( some_table )
    DB_FIELD( clientName, client_name )
}

К сожалению, moc не расширяет макросы, поэтому Q_CLASSINFO не добавляется.

Я пытался передать moc уже предварительно обработанным исходным кодом, но он не работает с некоторыми включенными классами Qt.

Знаете ли вы какой-нибудь обходной путь?

5
задан zarzych 7 November 2010 в 21:11
поделиться