Неделю проколупался со старым кодом в C++03, сегодня представилась возможность попрограммировать на C++14. Как глоток свежего воздуха. Причем не только из-за большей лаконичности и выразительности современного C++, но и из-за того, что в C++11/14 за счет move-semantic контролировать эффективность кода намного проще.
А ведь на подходе уже и C++17, со своими вкусностями. Предвкушая появление которых даже не хочется вспоминать, что в планах были еще и какие-то концепты. Хрен с ними, с концептами, они нужны-то паре-тройке разработчиков библиотек вроде Boost.Fusion или Boost.Hana ;) Шутка :)
А вот это вот:
struct A { int i, j; } f(); auto [ x, y ] = f(); // declares x and y to refer to the members of the f return value if (auto x = current_state(); x.ok()) { x.do_more_stuff(); } if (auto [ x, y ] = f(); x < 42) { /* use y */; } |
Облегчит жизнь очень многих рядовых C++ разработчиков.
PS. Пост написан под впечатлением вот от этого: Red Hat at the ISO C++ Standards Meeting (June 2016, Oulu): Core Language. Там еще больше вкусностей упомянуто :)
Комментариев нет:
Отправить комментарий