所以我有一個模板化的圖像類,爲此我嘗試設置內聯顏色轉換。這是代碼的簡化是傷腦筋我:模板類的內部模板
template <typename Color = colors::RGB>
class Image {
/// ...
template <typename DestColor>
operator Image<DestColor>() {
/// when assigning with a different colorspace:
/// ... do the color conversion
/// ... and return a fresh Image<DestColor>
}
template <>
operator Image<Color>() {
/// when assigning with the same colorspace:
return *this;
}
};
...問題是,下面的模板轉換操作符的模板特不能在類的級別定義(根據我得到的錯誤)。
我得到那個人需要指定專業化線外,但我不能爲我的生活找出語法。我應該如何申報專業化?
如果我沒有弄錯,你不能在一個類中聲明一個完整的模板類專業化,將虛擬類模板參數default添加到void可能會解決問題,如果它不打擾你。 – Caninonos
啊哈,如果我可能會問,會是什麼樣子? – fish2000
它看起來像[that](http://ideone.com/Udekt9)(編輯:你也可以把它設置爲私有的,並且聲明一個公共別名/模板派生結構來隱藏那個虛擬參數,如果它困擾你,沒有更好的方法) – Caninonos