[C++] template

template

template를 통해 다양한 자료형의 함수나 클래스를 만들 수 있다

템플릿 특수화

템플릿 함수의 구성 방법에 예외를 두기위해 사용한다

1
2
3
4
5
6
7
8
9
template <typename T>
T Max(T a, T b) {
return a > b ? a : b;
}

template<>
char* Max(char *a, char *b) {
return strlen(a) > strlen(b) ? a : b;
}

함수 템플릿과 템플릿 함수

템플릿을 통해 함수를 정의하면 함수 템플릿이라 한다

1
2
3
4
template <typename T>
T Add(T num1, T num2) {
return num1 + num2;
}

함수 템플릿을 기반으로 컴파일러가 만들어내는 함수를 템플릿 함수라고 한다

1
2
3
int Add<int>(int num1, int num2) {
return num1 + num2;
}
Author: Song Hayoung
Link: https://songhayoung.github.io/2020/08/03/Languages/Cplusplus/template/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.