Ага. WTL лучшее.
От: Andrew S Россия http://alchemy-lab.com
Дата: 14.02.03 19:16
Оценка:
И все-таки макросы в разы лучше для карты сообщений. Учитывая, что при этом карта сообщения преобразуется макросами в конструкцию вида switch{case}, очевидно, что у компилера есть все шансы оптимизировать выборку сообщения по ID во время компиляции, что он в большинстве случаев и делает (обычно используется некоторое преобразование над аргументом switch, а далее выбирается нужный элемент массива переходов).
У вас же поиск происходит горааааааздо медленнее (более того, он похоже даже не ассоциативный):
bool Handler::call( SWL::Handler mmp[], Wnd *wnd, MsgBase *msg ) {
Handler *p = mmp;
_ASSERTE( tag_begin == p->_proxy );
if ( p->_id == tag_x )
_init( mmp );

Handler vh;
vh._id = msg->id;

Handler *hs = mmp + 1;
Handler *he = mmp + ( 1 + mmp[0]._id );

Handler *ph = lower_bound( hs, he, vh, _less_by_id );

if ( ph != he && !(vh._id < ph->_id) ) {
ph->_call( wnd, msg );
return false;
}
return true;
}

Вывод: боюсь эта библиотека не показывает красоту С++ в полной мере (хотя бы так, как это делает ATL/WTL), и более того, показывает, что иногда макросами не стоит пренебрегать. А выражение про убогость win32 действительно смахивает на "пальцы".
http://www.rusyaz.ru/pr — стараемся писАть по-русски
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.