티스토리 뷰
후행 반환 타입(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 이후의 버전에서 함수의 반환 타입을 보다 명확하고 유연하게 정의하는 데 도움을 준다. 특히 복잡한 템플릿이나 타입 추론이 필요한 상황에서 그 유용성이 두드러진다.
반응형
'C++ > 참고' 카테고리의 다른 글
[C++] std::forward_list (0) | 2023.12.18 |
---|---|
[C++] std::vector (0) | 2023.12.18 |
[C++] 문법: 범위 지정 연산자와 점 연산자 차이 (0) | 2023.12.17 |
[C++] 문법: 범용 참조 (Args&&... args) (0) | 2023.12.17 |
[C++] 문법: 가변 템플릿 인자 (...args) (0) | 2023.12.17 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- javascript
- 파니노구스토
- 이탈리안 레스토랑
- Async
- 정보보안기사 #실기 #정리
- redux
- 인천 구월동 이탈리안 맛집
- 맛집
- AsyncStorage
- react-native
- Promise
- redux-thunk
- react
- 인천 구월동 맛집
- await
- Total
- Today
- Yesterday