RakunBear
2025. 3. 26. 14:12
2025. 3. 26. 14:12
typeof 와 차이
typeof
는 GCC 에서만 지원되는 비표준 기능
#define
를 사용한 매크로에서 type을 파악할 떄, 사용하면 좋음
decltype
- C++11에서 도입된 표준 키워드
- 컴파일 시점에 표현식의 타입을 추론
- 특정 변수나 표현식의 타입을 추론하여 정확히 동일한 타입을 제공하는 데 사용
- 참조 반환, 복잡한 표현식, 템플릿에서 정확한 리턴 타입을 유지
- 값 복사가 필요할 떄는 사용 자제
- 명확한 표현식을 팀에서 요구할 때, 여전히 후행 리턴타입 사용
-> decltype(t1 * t2)
와 같이 반환 타입이 t1 * t2
표현식의 결과라는 것을 명확히 보여주고 싶을 떄
- 사용 예시
int x = 10;
decltype(x) y = 20; // y는 int 타입
auto
키워드와 결합하여 활용 (C++14 버전부터 지원) template<typename T1, typename T2>
decltype(auto) add(const T1& t1, const T2& t2) {return t1 + t2;}