티스토리 뷰
가변 템플릿 인자는 템플릿 함수나 클래스가 임의의 수와 타입의 인자를 받을 수 있도록 한다. 여기서 `Args`는 가변 인자의 타입들을 나타내는 플레이스홀더 이름이며, 다른 이름으로 대체될 수 있다.
가변 템플릿 인자를 사용하는 방법은 다음과 같다:
template<typename ... Args>
void myFunction(Args ... args) {
// args를 사용하는 코드
}
이 함수는 어떤 수와 타입의 인자든 받을 수 있다. 예를 들어, `myFunction(1, 2.5, "Hello")`와 같이 호출할 수 있다.
template<typename ... Args>
class MyClass {
public:
MyClass(Args ... args) {
// args를 사용하는 생성자의 로직
}
};
이 클래스도 여러 타입과 수의 인자를 받을 수 있는 생성자를 가지고 있다.
가변 템플릿 인자는 주로 템플릿 메타프로그래밍, 범용 라이브러리 개발, 함수 포워딩 등 다양한 상황에서 유용하게 사용된다. `std::tuple`, `std::function` 등의 표준 라이브러리 클래스들도 가변 템플릿 인자를 활용한다.
또한, C++11 이상에서는 가변 인자 템플릿을 활용하여 재귀적 템플릿 패턴을 구현할 수 있으며, 이를 통해 각 인자에 대해 연산을 수행하는 등의 고급 기능을 구현할 수 있다.
범용 참조와 함께 쓰일 수 있다.
범용 참조:
https://til-choonham.tistory.com/471
반응형
'C++ > 참고' 카테고리의 다른 글
[C++] 문법: 범위 지정 연산자와 점 연산자 차이 (0) | 2023.12.17 |
---|---|
[C++] 문법: 범용 참조 (Args&&... args) (0) | 2023.12.17 |
[C++] 문법: 참조 변수와 포인터 변수의 사용 목적 차이 (0) | 2023.12.16 |
[C++] 문법: Class member 함수를 const와 非const를 따로 선언하는 이유 (0) | 2023.12.16 |
[C++] 문법: 포인터 변수와 참조 (0) | 2023.12.16 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- javascript
- 이탈리안 레스토랑
- 인천 구월동 맛집
- AsyncStorage
- redux-thunk
- 맛집
- Promise
- 정보보안기사 #실기 #정리
- Async
- 파니노구스토
- redux
- react
- await
- 인천 구월동 이탈리안 맛집
- react-native
- Total
- Today
- Yesterday