所以我有一个模板化的图像类,为此我尝试设置内联颜色转换。这是代码的简化是伤脑筋我:模板类的内部模板
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