пятница, 15 июля 2016 г.

[prog.c++] В предвкушении C++17...

Неделю проколупался со старым кодом в 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. Там еще больше вкусностей упомянуто :)

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