我想編寫一個模板化函數,根據傳入的模板類類型更改其行爲。爲此,我想確定傳入的類型。例如,這樣的事情:確定在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的話) '是一個整數類型,或者如果'T'是無符號的) – jalf
當你在這裏調用foo時,你需要手動指定類型,因爲編譯器無法推斷出類型。 ''foo()'或'foo ()'或'foo ()'等。這意味着'foo ()'將會輸出'Template parameter is int'這似乎是多餘的。 –