в основном сигнатура QMetaobject :: invokemethod: ...
bool invokeMethod ( QObject * obj, const char * member, Qt::ConnectionType type, QGenericReturnArgument ret, QGenericArgument val0 = QGenericArgument( 0 ), QGenericArgument val1 = QGenericArgument(), QGenericArgument val2 = QGenericArgument(), QGenericArgument val3 = QGenericArgument(), QGenericArgument val4 = QGenericArgument(), QGenericArgument val5 = QGenericArgument(), QGenericArgument val6 = QGenericArgument(), QGenericArgument val7 = QGenericArgument(), QGenericArgument val8 = QGenericArgument(), QGenericArgument val9 = QGenericArgument() );
Теперь в этом мы используем макрос Q_ARG с синтаксисом ..
QGenericArgument Q_ARG ( Type, const Type & value )
, который требуетПараметр const.
Теперь, когда вы удаляете этот параметр const, условие становится ложным, и оно генерирует утверждение во время выполнения.