Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Новые вопросы и ответы 4 (https://www.otvetnemail.ru/novye-voprosy-i-otvety-4-823/)
-   -   Издержки метообъектной информации. (https://www.otvetnemail.ru/novye-voprosy-i-otvety-4-823/izderzhki-metoob-ektnoj-informacii-262831/)

Guest 28.09.2011 21:53

Издержки метообъектной информации.
 
Иногда я сталкиваюсь с такой проблемой при использовании connect( ): существование сигналов и слотов с соответствующими параметрами не проверятся на этапе компиляции. Поэтому, при изменении сигнатуры этих функций могут появиться скрытые ошибки. Я придумал такой выход:Код:Q_ASSERT(connect(obj1,SIGNAL(s ignal(int)),obj2,SLOT(slot(int))))Это полностью не исключает ситуации описанной выше, но шансов "напороться" на эту ошибку становится больше.Аналогично поступаю и с QMetaObject::invokeMethod().Код:Q_ASSERT (QMetaObject::invokeMethod(obj,"method", Q_ARG(QString,str))).При работе с проперти по имени (пример: obj.property("prop")) тоже может возникнуть ошибка при смене имени проперти или его типа. Поэтому для взятия значения я написал функцию, которая при отсутсвии свойства или неправельном типе вывалит ассерт. Вызов функции setProperty() тоже обкладываю ассертом.Собственно вопрос (или тема для дискуссии) А нормальное ли это решение? Может кто-то борется с этим по-другому. P.S. Приветствую любые высказывания по теме.


Часовой пояс GMT, время: 16:25.


© www.otvetnemail.ru - Форум вопросов и ответов.