[Перевод] Новые экспериментальные операторы Си++

Так часто приходится писать такой код: x = (y + 1) % 10; x = (y + 1) * (z — 1); x = (double)(f (y) + 1); Так как у операторов + и — такой низкий приоритет, то приходится постоянно заключать их в скобки, а это приводит к глубокому вложенному коду, который сложно понять.В Visual Studio 2015 RC добавлена пара экспериментальных операторов, названных операторы–головастики. Они позволяют добавлять и вычитать единицу без необходимости прибегать к скобкам.

x = -~y % 10; x = -~y * ~-z; x = (double)-~f (y); Они так названы, так как напоминают головастиков, которые плывут к или от значения. Тильда это голова, а минус — хвост.Синтакс Значение Мнемоника -~y y + 1 Головастик плывет к значению и делает его больше ~-y y — 1 Головастик плывет от значения и делает его меньше Чтобы включить экспериментальную поддержку операторов–головастиков, добавьте в начале C++ файла:

#define __ENABLE_EXPERIMENTAL_TADPOLE_OPERATORS Вот простая программа, которая демонстрирует применение операторов–головастиков: #define __ENABLE_EXPERIMENTAL_TADPOLE_OPERATORS #include #include #include int __cdecl main (int, char**) { int n = 3; std: cout << "3 + 1 = " << -~n << std::endl; std::cout << "(3 - 1) * (3 + 1) " << ~-n * -~n << std::endl; return 0; } Помните, что эти операторы всё ещё экспериментальные. Они не являются официальной частью языка Си++, но вы можете поиграть с ними и оставить ваши замечания здесь.

© Habrahabr.ru