가티있는블로그

[C++] 후위 반환 타입

2021. 7. 25. 16:51 | 프로그래밍/C++

함수 이름앞에는 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