프로그래밍 언어/C & C++ 정리

T{} 영초기화 구문과 템플릿화

뽀또치즈맛 2025. 6. 10. 09:07
// 예시 코드

template <typename T>
void Grid<T>::veryfyCoordinate(size_t x, size_t y)
{
   if(x >= m_width)
   {
       throw std::out_of_range {
          std::format("{} must br less than {}", x, m_width);
       }
   }
    if(y >= m_height)
   {
       throw std::out_of_range {
          std::format("{} must br less than {}", y, m_height);
       }
   }
}


클래스 템플릿 메서드 구현 코드를 작성할 때
특정한 템플릿 타입 매개변수를 T에 대하여 디폴트 값을 지정하려면,
T{}와 같은 문법에 따라야 한다.
T가 클래스 타입이면 디폴트 생성자를 호출하고,
T가 기본 타입이면 T{} 0을 생성한다.

이렇게 표기하는 방법을 영 초기화 구문이라고 부르며,
구체적인 타입을 모르는 변수의 디폴트 값을 지정하는 데 유용하다.