티스토리 뷰

C++/참고

[C++] 문법: 후행타입반환

춘햄 2023. 12. 17. 09:37

 후행 반환 타입(trailing return type)은 C++11에서 도입된 기능으로, 함수의 반환 타입을 함수 매개변수 목록 뒤에 명시하는 방법이다. 이는 함수 선언 시 반환 타입을 더 명확하게 표현하거나, 특히 템플릿 함수에서 반환 타입을 표현하기 어려운 경우에 유용하다.


구문

후행 반환 타입은 auto 키워드와 화살표 (->)를 사용하여 정의된다. 기본 형식은 다음과 같다:

auto functionName(parameters) -> returnType;

여기서 functionName은 함수의 이름, parameters는 매개변수 목록, returnType은 반환 타입이다.


사용 예

후행 반환 타입은 특히 반환 타입이 매개변수에 의존하는 경우 유용하다. 예를 들어, 두 매개변수의 타입이 다를 때 그들의 공통 타입을 반환 타입으로 사용하고자 할 때 이를 쉽게 표현할 수 있다:

template <typename T1, typename T2>
auto add(T1 a, T2 b) -> decltype(a + b) {
    return a + b;
}

여기서 decltype(a + b)는 a와 b의 합의 타입을 반환 타입으로 사용한다는 것을 의미한다.


장점

  • 유연성: 후행 반환 타입을 사용하면 함수의 반환 타입을 더 유연하게 정의할 수 있다. 특히 템플릿과 같은 복잡한 상황에서 이점이 크다.
  • 가독성: 함수의 매개변수와 반환 타입 사이의 관계가 명확해지며, 코드의 가독성이 향상된다.
  • 함수 템플릿: 함수 템플릿에서 반환 타입이 매개변수 타입에 의존하는 경우, 후행 반환 타입을 사용하면 타입 추론이 간편해진다.

후행 반환 타입은 C++11 이후의 버전에서 함수의 반환 타입을 보다 명확하고 유연하게 정의하는 데 도움을 준다. 특히 복잡한 템플릿이나 타입 추론이 필요한 상황에서 그 유용성이 두드러진다.

Comments