Во-первых, сильно изменился (в лучшую сторону) класс
ma::handler_storage. Теперь он поддерживает функциональные объекты с operator()(void) при специализации ma::handler_storage<void>. Кроме того, наконец-то, метод
ma::handler_storage::target() стал типизированным, что избавляет его пользователей (см. проект nmea_client) от неприятных reinterpret_cast. По умолчанию ma::handler_storage::target() возвращает void*, но теперь, при желании, этот тип можно специфицировать указав его в качестве второго шаблонного аргумента ma::handler_storage. При такой специализации для класса
ma::handler_storage_service должно быть доступно преобразование static_cast<Target*>(Handler*), где Target- специфицированный дляma::handler_storage::target()тип (т.е.Target* ma::handler_storage<Arg, Target>::target()).Handler- тип функционального объекта, хранимого вma::handler_storage.
Второе крупное нововведение заключается в поддержке проектами qt_echo_server, echo_server, async_connect и asio_performance_test_client режима io_service-per-work-thread (по аналогии с HTTP Server 2 из примеров Asio). Для CLI за этот режим отвечает параметр demux_per_work_thread. Для Windows режим io_service-per-work-thread по умолчанию отлючен (
--demux_per_work_thread=0, false, off). Для других платформ - по умолчанию включен (--demux_per_work_thread=1, true, on).Остальные детали беты 0.5.0 можно прочитать в списке рассылки.
Updated
Исправление ошибок и расширение поддержки лямбд вылилось в asio samples 0.5.1.
Комментариев нет:
Отправить комментарий