class FooInterface {
virtual void toggle() = 0;
};
template <class TYPE, class CONFIG>
class Foo : public FooInterface {
virtual void toggle();
TYPE value_;
};
template <>
void Foo<bool, class CONFIG>::toggle() {
if (CONFIG::canToggle())
value_ = !value_;
}
struct MyConfig {
static bool canToggle() {
return false;
}
};
int main() {
Foo<bool, MyConfig> foo;
}
這是我正在處理的準確近似值。我基本上想要有一個專門的方法來處理類型,同時保持通用的CONFIG。因此,舉例來說,我可能有十幾個不同的美孚::切換()方法與專門的代碼處理特定類型,但什麼是從CONFIG使用將是在所有的這些方法是一致的。部分模板專業化問題
問題是以前的代碼不能編譯,以及幾種不同的組合,我希望有一些幫助找到不同的解決方案或一些解決方法,使當前的工作。
編輯:我應該注意到,以前的代碼沒有CONFIG模板參數。
如果你專門一個參數,你還是應該在'模板<類CONFIG>'另外一個。 – 2011-03-15 21:38:46