[Перевод] Новые экспериментальные операторы Си++
Так часто приходится писать такой код: 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