반응형
"템플릿 <>"대 괄호없는 "템플릿"-차이점은 무엇입니까?
내가 선언했다고 가정하자.
template <typename T> void foo(T& t);
자, 차이점은 무엇입니까
template <> void foo<int>(int& t);
과
template void foo<int>(int& t);
의미 상? 그리고 대괄호가없는 템플릿과 빈 대괄호가있는 템플릿은 다른 컨텍스트에서 다른 의미를 가지고 있습니까?
관련 항목 : C ++ 템플릿의 특정 인스턴스를 강제로 인스턴스화하려면 어떻게합니까?
template <> void foo<int>(int& t);
잠재적으로 다른 본문을 사용하여 템플릿 의 전문화 를 선언합니다 .
template void foo<int>(int& t);
원인이 명시 적 인스턴스화 템플릿을하지만, 전문화를 도입하지 않습니다. 특정 유형에 대한 템플릿의 인스턴스화를 강제합니다.
클래스 / 구조체를 사용하면
template <typename T> struct foo {};
다음은 전문화입니다.
template <> struct foo<int>{};
다음은 명시 적 인스턴스화입니다.
template struct foo<int>;
반응형
'Program Tip' 카테고리의 다른 글
Windows Form에서 표준 닫기 (X) 단추 재정의 (0) | 2020.10.28 |
---|---|
비대화 형으로 IPython / Jupyter 노트북 실행 (0) | 2020.10.27 |
Quartz.net을 ASP.NET과 함께 사용하는 방법 (0) | 2020.10.27 |
app.config에 값을 추가하고 검색합니다. (0) | 2020.10.27 |
모든 git 명령에 드라 이런 옵션이 있습니까? (0) | 2020.10.27 |