C++ такое говно.
Вот есть необходимость дергать коллбек по приходу некоторых данных от сервера. Сигнал не подходит, потому что слушателей дохуища, поэтому делать диспетчеризацию, кого именно интересуют пришедшие данные, лучше на стороне получателя сообщения от сервера. В общем, написал я уж было QHash из id → boost::function, как вдруг дошло, что это полный пиздец: boost::function получается как boost::bind указателя на класс к мембер-функции. Поэтому если класс убьется до того, как от сервера придут данные, то это дело нехило так распидарасит, и даже нет способа словить исключение по обращению к null-ссылке, как в манагед-языках, например, потому что указатель будет не-null, а просто dangling. И без костылей типа дерегистрации у диспетчера в деструкторе объекта не обойдешься.
С++ такое говно.
0xd34df00d
22.05.2011 14:23 Azoth_primary
Do you really want to delete ?
ПЛЮСОБЛЯДИ СОСНУЛИ еще в ОП-посте. Мое сердце радуется.