[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

댓글

이 블로그의 인기 게시물

[PS] BOJ 20543번 폭탄 던지는 태영이

프로그래밍에서 실수형의 부정확성

프로그래머스 2019 윈터코딩 온라인 테스트를 보았다. (풀이)