전달 된 템플릿 클래스 형식에 따라 동작을 변경하는 템플릿 함수를 작성하고 싶습니다. 이렇게하려면 전달 된 형식을 결정하고 싶습니다. 예를 들어, 다음과 같은 내용이 있습니다.C++에서 동일한 기본 형식에 대한 별칭인지 여부 확인
template <class T>
void foo() {
if (T == int) { // Sadly, this sort of comparison doesn't work
printf("Template parameter was int\n");
} else if (T == char) {
printf("Template parameter was char\n");
}
}
이것이 가능합니까?
'T'가'int' 인 경우에만) 또는 전체 유형 그룹 ('T'가 포인터 인 경우) 또는'T '정수형 또는'T'가 부호없는 경우) – jalf
foo를 여기 호출 할 때 컴파일러가 형식을 추론 할 수있는 방법이 없으므로 형식을 수동으로 지정해야합니다. 'foo()'또는'foo ()'또는'foo ()'등등.'foo ()'은'Template parameter was int'를 출력합니다. –