프로그래밍/C++
[C++] 후위 반환 타입
가티(佳T)
2021. 7. 25. 16:51
함수 이름앞에는 auto를 적고 함수뒤의 -> 뒤에는 반환타입을 적는다.
trailing return type 또는 suffix return type 이라고 한다.
C+11 부터 지원한다.
람다 표현식이나 함수 템플릿을 만들때 사용.
auto square(int a) -> int
{
return a*a;
}
auto main() -> int
{
square(3);
}
후위 반환 타입이 필요한 경우는 아래와 같다.
두개의 다른 타입의 템플릿 변수를 사용할때 return 타입이 애매할경우 decltype 사용이 가능한데,
이 경우 변수의 타입이 정해진 후에 타입정의가 가능하기 때문에 후위 반환 타입을 사용해야한다.
C++ 14의 경우는 decltype 생략이 가능하다.
template<typename T1, typename T2>
auto add(T1 a, T2 b) -> decltype(a+b) // C++11
auto add(T1 a, T2 b) // C++14
{
return a+b;
}