Эта маленькая библиотека позволяет сохранять объекты в DOM дерево и правильно поднимать их оттуда. ex. shared_ptr<Streamable> s = Streamable::load( QDomElement ) if( dynamic_pointer_cast<MyCoolType>( s ) ) dynamic_pointer_cast<MyCoolType>( s )->virtualFunction();
Кто пользовался ранними Borland C++ - вспомнит :-)
PS. Простой (да и не простой) чат делается на раз :) На одной стороне сохраняете объект - сообщение, на другой поднимаете и говорите "печатайся". И ядро больше не трогаете :-) XMLStream брал с psi, ломал для получения серверного варианта... Но пока не дам... больно криво написано...
>>> Подробности