1
是否有可能創建一個只有在類實例化了特定類型時纔可用的函數? (不重寫整個類的類型?)可能有一個函數可用於泛型類中的一種類型?
是否有可能創建一個只有在類實例化了特定類型時纔可用的函數? (不重寫整個類的類型?)可能有一個函數可用於泛型類中的一種類型?
如果我明白你在做什麼之後,有一種可能性是使用包含其他函數的基類,然後有一個模板和一個專門化,該基類,專業化添加您想要的額外功能:
struct X {
int x() { return 1; }
};
template<class T>
struct Y : public X {
};
template<>
struct Y<int> : public X {
int y() { return 2; }
};
int main() {
Y<long> y;
y.x();
Y<int> z;
z.y();
return 0;
}
是的,請參閱'std :: enable_if <>'。 – ildjarn 2012-04-09 23:00:08