검색결과 리스트
tadpole operators에 해당되는 글 1건
- 2015.05.27 가장 최신의 실험적인 C++ 기능 tadpole operators
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++의 일부가 아니다.
댓글