[C++] 형식 지정자 키워드 : decltype

decltype은 알고자 하는 변수 식의 타입으로 치환하는 역할을 한다.
예를 들어서

int a = 10;
decltype(a) b = 3;

b의 타입은 a의 타입인 int로 된다. 이로써, 정확하게 타입 그대로를 전달할 수 있게 된다.
또, 타입의 결과를 알 수 없을 때도 사용한다.

template <typename T, typename U>
void add(T t, U u, decltype(t + u) *result) {
    *result = t + u;
}

(1) double t, double u => double * result
(2) double t, int u => double * result
(3) int t, int u => int * result

댓글

이 블로그의 인기 게시물

[C++] bool을 담은 vector가 foreach에서 동작하지 않는 이유

비트 연산에 대한 간단한 활용

Hash Table의 의미와 중요성