LINUX.ORG.RU
Ответ на: комментарий от rh9
В Qt сигналы и слоты работают через MOC, это, строго говоря, не чистая C++-библиотека, а использующая особый диалект C++. Не надо там смотреть.
erDiZz
()
Ответ на: комментарий от anonymous
> открой для себя указатели на функции в С, что в этом сложного?

Механизм сигналов и слотов это несколько большее, чем банальные указатели на функции. Прежде чем с претензией что-то советовать не помешало бы разобраться самому.

Про Qt (а также про boost.signals и libsigc) я в курсе, но интересует именно реализация сигналов и слотов на C а не на C++.
syomin
() автор топика
Ответ на: комментарий от syomin
Можно узнать, чем механизм сигналов и слотов несколько большее, чем банальные указатели на функции?

Мне на самом деле интересно.

vasirck
()
Ответ на: комментарий от vasirck
> Можно узнать, чем механизм сигналов и слотов несколько большее, чем банальные указатели на функции?

Конечно :).
Главное отличие в том, что при вызове функции по указателю вызывается одна функция, а при использовании сигналов - последовательно вызывается несколько функций.
syomin
() автор топика
Ответ на: комментарий от vasirck
> Может тогда сделать список указателей на функции?
Фактически всё к этому и сводится, просто интересно было бы посмотреть на возможные реализации.
syomin
() автор топика
Ответ на: комментарий от syomin
>просто интересно было бы посмотреть на возможные реализации.

ну так и посмотрите в сырцы glib-a

cvv ★★★★★
()
Ответ на: комментарий от cvv
Я ж сказал, что посмотрел - но там все весьма навернуто, а интересует более простоя реализация, которую можно было бы использовать при разработке ПО для встраиваемых систем.
syomin
() автор топика
Ответ на: комментарий от syomin
>Я ж сказал, что посмотрел - но там все весьма навернуто,

я вас понял что вы только api смотрели.

также я не считаю эту реализацию "весьма навернутой". по крайней мере в отличие от qt ей не требуется дополнительный препроцессор

cvv ★★★★★
()
Ответ на: комментарий от cvv
> также я не считаю эту реализацию "весьма навернутой". по крайней мере в отличие от qt ей не требуется дополнительный препроцессор

После того, как я поработал с boost::signal я что-то засомневался в том, что это преимущество... :)
syomin
() автор топика
Ответ на: комментарий от syomin
>После того, как я поработал с boost::signal я что-то засомневался в том, что это преимущество... :)

я говорю о том что "дополнительный препроцессор это наворот" а преимущество это или нет вопрос религиозный.

cvv ★★★★★
()
Ответ на: комментарий от cvv
любая реализация signal-slot mechanism , connection points, etc,
работает на основе наличия metadata information.
Говоря по-русски, необходим механизм,
который позволяет преврашать "символьную строку" в указатель на
функцию или метод класса. То есть, signal-slot mechanism, это всегда
"некий встроенный интепретатор".
Думаю самой простой реализацией могла бы быть
"parcing debugging info", например, полученную после nm, gdb, etc,


Valeriy_Onuchin ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.