7
在C++中,如果我有一個模板參數,我該如何幹淨地專門化一個默認參數?例如,考慮以下因素:模板參數的默認參數是否可以專用?
template <class Key, class Value = int > class Association;
如果我想Value
,而不是默認float
爲Special
類?有沒有一種方法實際上專門化類Association
,這樣如果密鑰是Special
該值默認爲float
?
我想做到這一點的一種方式將與性狀:
template <class Key> struct Traits {
typedef int defaultValue;
}
template<> struct Traits<Special> {
typedef float defaultValue;
}
template <class Key, class Value = Traits<Key>::defaultValue> class Association;
是否有這樣做的更簡潔的方式,是不是這樣參與進來,會更容易顯示,int是正常的默認在協會定義的地方?
我認爲應該有一種方式來實現你想要的模板的別名是什麼('using'),但我沒有時間來想辦法 – sehe