New C++ experimental feature: The tadpole operators - The Old New Thing - Site Home - MSDN Blogs(http://blogs.msdn.com/b/oldnewthing/archive/2015/05/25/10616865.aspx ) 의 글 일부 번역

 


나는 자주 이런 코드를 쓰고 있다

x = (y + 1) % 10;

x = (y + 1) * (z - 1);

x = (double)(f(y) + 1);

 

+연산자는 우선 순위가 아주 낮기 때문에 그 주변에 괄호를 사용한다. 그래서 읽기 불편한 깊게 중첩된 코드가 되어 버린다.

 

Visual Studio 2015 RC에는 실험적인 연산자가 2개 추가 되었다. 그 이름은 tadpole operators(올챙이 연산자). 

이것은 정수 값에서 괄호를 필요로 하지 않고 1을 가산, 감산 할 수 있는 연산자이다.

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 <ios>

#include <iostream>

#include <istream>

 

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;

}

 

이 연산자는 아직 실험적인 기능임을 주의해야 한다. 공식적인 C++의 일부가 아니다.

 

저작자 표시
신고
by 흥배 2015.05.27 00:06