假設我有一個純粹的抽象基類。類模板實現了這個接口,並且是專用的。現在,我的問題是這個專業化應該能夠處理專業化的子類。所以,我嘗試了enable_if,但是這個子類最終變成了抽象的...我怎樣才能解決這個問題? 例如: // This example doesn't work because a subclass of A does not satisfy the
// specializatio
我想寫如下: template <typename S, typename T> void foo() {
/* code for the general case */
}
template <typename T> void foo<MySType,T>() {
/* partially specialized code - for any kind of T, bu
如果T是從特定基類派生的,我想專門實現模板類。 我該怎麼做? 在下面的代碼中,x.f()和y.f()應該做不同的工作。 我想不僅爲「派生」而且爲所有來自基類的派生類工作。 #include <iostream>
class Base
{
};
class Derived : public Base
{
};
// If T not derived from Base:
tem