Версия 5.2.1 фреймворка SObjectizer зафиксирована в svn-репозитории на SourceForge в виде тега.
С момента фиксации версии 5.2.0 в ходе работы над дополнительными библиотеками в ветку 5.2 добавлялись мелкие улучшения, которые оформлялись в виде совсем минорных релизов (таковыми были 5.2.0.1-5.2.0.4). При очередном инкрементальном улучшении ветки 5.2 было решено делать не 5.2.0.5, а 5.2.1, т.к. это изменение затронуло гораздо больше кода, чем все предыдущие.
В версию 5.2.1 добавлены вспомогательные методы so_environment_t::register_agent_as_coop(), которые сокращают объем писанины для, как выяснилось, совсем нередкой ситуации, когда нужно зарегистрировать кооперацию всего из одного агента. Если раньше для этого нужно было писать что-то вроде:
void init( so_5::rt::so_environment_t & env ) { // Creating a cooperation. auto coop = env.create_coop( "coop" ); // Creating and adding agent. std::unique_ptr< a_hello_t > agent( new a_hello_t( env ) ); coop->add_agent( std::move( agent ) ); // Registering cooperation. env.register_coop( std::move( coop ) ); } |
То сейчас это можно сделать так:
void init( so_5::rt::so_environment_t & env ) { // Creating agent. std::unique_ptr< a_hello_t > agent( new a_hello_t( env ) ); // Registering cooperation. env.register_agent_as_coop( "coop", std::move( agent ) ); } |
Или даже вот так:
void init( so_5::rt::so_environment_t & env ) { // Creating and registering a cooperation. env.register_agent_as_coop( "coop", new a_hello_t( env ) ); } |
Сейчас сам удивляюсь, почему мы раньше не додумались до такого простого (буквально в три строчки) вспомогательного метода. Вероятно, все это объясняется замечательным высказыванием: простота не предшествует сложности, а следует за ней :)
Комментариев нет:
Отправить комментарий