четверг, 26 ноября 2015 г.

[prog.sobjectizer] Иногда мне кажется, что версию 5.6.0 нужно сделать хотя бы для того...

...чтобы выбросить пространство имен so_5::rt и отказаться от использования суффикса _t в именах типов. Ну и, заодно, перейти на C++14, отказавшись от поддержки старья, вроде VC++12.0.

Правда, боюсь, тогда SO-5 перестанут использовать даже в тех редких проектах, где он еще используется :(

Тем не менее, буду признателен читателям, которые в комментариях укажут, какой из двух приведенных ниже фрагментов кода выглядит более привлекательным и/или простым в восприятии:

№1, существующий вариант:

vector< pair< string, so_5::rt::bag_params_t > >
build_bag_params()
   {
      namespace mbags = so_5::rt::msg_bag;

      vector< pair< string, so_5::rt::bag_params_t > > params;

      params.emplace_back( "unlimited",
            so_5::rt::bag_params_t{
                  mbags::capacity_t::make_unlimited() } );

      params.emplace_back( "limited(dynamic,nowait)",
            so_5::rt::bag_params_t{
                  mbags::capacity_t::make_limited_without_waiting(
                        5,
                        mbags::storage_memory_t::dynamic,
                        mbags::overflow_reaction_t::drop_newest ) } );

№2, предполагаемый вариант (более близкий к тому, что принято в современном C++):

vector< pair< string, so_5::bag_params > >
build_bag_params()
   {
      namespace mbags = so_5::msg_bag;

      vector< pair< string, so_5::bag_params > > params;

      params.emplace_back( "unlimited",
            so_5::bag_params{
                  mbags::capacity::make_unlimited() } );

      params.emplace_back( "limited(dynamic,nowait)",
            so_5::bag_params{
                  mbags::capacity::make_limited_without_waiting(
                        5,
                        mbags::storage_memory::dynamic,
                        mbags::overflow_reaction::drop_newest ) } );

Комментариев нет: