[c++] 템플릿 overloading

아래는 간단한 템플릿 오버로딩의 예시입니다.

#include <iostream>

template <typename T>
T maximum(T a, T b) {
    return (a > b) ? a : b;
}

template <typename T>
T maximum(T a, T b, T c) {
    return maximum(maximum(a, b), c);
}

위의 코드에서는 maximum 함수를 두 가지 형태로 오버로딩하여 사용하였습니다. 첫 번째 함수는 두 개의 인수를 받아들이고, 두 번째 함수는 세 개의 인수를 받아들입니다.

하지만, 템플릿 오버로딩 시에는 형태가 완전히 동일해야 합니다.

더 자세한 내용은 아래 C++ 공식 문서를 참고하시기 바랍니다. https://en.cppreference.com/w/cpp/language/function_template