Uniform initializer
: C++11 에서는 {} 을 사용하여 모든 타입의 데이터 초기화를 할 수 있다.
또한 기존 C++에서 narrow down 이 허용되었던 형변환은
{} 구문을 사용할 경우 불가능하도록 됐다.
심지어 데이터 표현 범위(byte)를 넘어설 경우도 error 를 발생시킨다.
e.g, char c{300};
type(1 byte)에서 표현가능한 데이터 범위를 넘어설 경우
피드 구독하기:
댓글 (Atom)
[C++] meta programing
재귀 호출에 관해 template meta programming 을 적용한 예제를 살펴보자. #include using namespace std; int fact(int n){ if(n factorial 연산을 하는 일반적인 재귀 호출 함...
-
Template specialization : class template 을 arguments에 따라서 customizing 하는 기법 먼저 위 예제의 첫 번째 template 선언처럼 일반적인 template 선언은 primary temp...
-
Override : 함수를 Override 할 때 정확한 signature 에 맞춰 override 되는지 컴파일 타임에 확인되도록 하는 키워드 위 예제에서 발생하는 실수들이 문제가 되는 이유는 IDE에서 컴파일하는데 문제가 없기 때문이다...
-
Static assert : 컴파일 타임에 assertion 을 할 수 있다. C에서 기존에 사용하던 assert() 는 runtime 에 동작한다. C++11에서는 컴파일 타임에도 assert을 사용하도록 static_assert 를 도입...
댓글 없음:
댓글 쓰기