함수 이름앞에는 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;
}
'프로그래밍 > C++' 카테고리의 다른 글
[C++] 람다표현식 (0) | 2021.07.25 |
---|---|
[C++] constexpr (0) | 2021.07.25 |
[C++] template (0) | 2021.07.22 |
[C++] structured binding (0) | 2021.07.21 |
[C++] typedef, using (0) | 2021.07.19 |