template method 기본 인자에 대한 형식 연역
기본 호출 인자에 대해서는 형식 연역을 하지 않는다. template void f(T = "") { } int main() { f(1);// T 를 int로 연역한다. 따라서 f(1)을 호출한다. f();// 오류: T를 연혁할 수 없다. } 위 코드를 쓰고 싶다면 템플릿 파라미터에 대한 기본 인자를 선언해야 한다. template void f(T = "") { } Inline을 쓰지 않는 이유 일반적으로 함수 템플릿을 inline으로 선언할 필요는 없다. 평범한 인라인이 아닌 함수와 달리 인라인이 함수 템플릿도 헤더 파일에 정의할 수 있고, 이 헤더 파일을 여러 번역단위translation unit에 포함시킬 수 있다. 특정 형식에 대해 템플릿 전체를 특수화하는 경우는 예외다. 이때는 그 결과로 나온 ..
컴퓨터 언어/C++
2021. 4. 29. 16:26