19.3 Function template specialization
https://www.learncpp.com/cpp-tutorial/function-template-specialization/
만약 member function이 특정 parameter type의 class object에서
특별한 functionality를 원하는 경우에 다음과 같은 방법으로 가능하다
template <typename T>
class Storage
{
private:
    T m_value {};
public:
    Storage(T value)
      : m_value { value }
    {
    }
    void print()
    {
        std::cout << m_value << '\n';
    }
};다음과 같은 일반적인 template class가 있다
int main()
{
    // Define some storage units
    Storage<int> nValue { 5 };
    Storage<double> dValue { 6.7 };
    // Print out some values
    nValue.print();
    dValue.print();
}위와 같이 실행하면 출력은 다음과 같다
5
6.7
그런데 우리가 double의 경우 출력을 특별하게 하고 싶다
이때 다음과 같은 코드를 사용해 print함수를 cutomizing할 수 있다
template <>
void Storage<double>::print()
{
    std::cout << std::scientific << m_value << '\n';
}위와 같은 경우에 출력은 다음과 같다
5
6.700000e+000
이 외의 예시는 생략한다
Author And Source
이 문제에 관하여(19.3 Function template specialization), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ikmy0ung/19.3-Function-template-specialization저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)