Re[3]: SObjectizer-5.7.0 и so5extra-1.4.0
От: SaZ  
Дата: 19.07.20 16:52
Оценка:
Здравствуйте, so5team, Вы писали:

S>Здравствуйте, SaZ, Вы писали:


SaZ>>Пытаюсь отправить сигнал сам себе, что-то вроде

SaZ>>
SaZ>>struct Proceed final: public so_5::signal_t{};
SaZ>>//...
SaZ>>so_5::send<Proceed>(*this); // this - агент
SaZ>>

SaZ>>Получаю статический ассерт: message.hpp(543): error C2338: message class must be derived from the message_t.
SaZ>>Как правильно писать обработчики сигналов?

S>А ошибка диагностируется в месте отсылки сигнала или в месте подписки на сигнал?


Диагностируется в месте отсылки, но пропадает, если я удаляю подписку на обработчик. Поэтому я подразумеваю, что что-то не так с обработчиком.
class myagent: ...
{
  void onSignal(const Proceed&); // при void onSignal(Proceed); чуть другая ошибка
...
  so_subscribe_self().event(&myagent::onSignal); // Если закомментировать, то ошибка пропадает, но сигнал идёт вникуда.
}


Если не разберёмся сейчас, то накидаю минимальный примерчик.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.