模板函数隐式/显式参数
我正在尝试使用模板函数对像素值进行插值。
我有两类实现插值算法的插值器。
class LinearInterpolator;
class NearestNeighborInterpolator;
我有不同类别的图像;
class ColorImage;
class GrayScaleImage;
然后,我有一个函数可以利用您选择的特定插值器进行插值。
template<typename InterpType, typename ImageType, typename PelType>
bool getValue(const ImageType& image, PelPosition pos, PelType* pelValue);
在我的调用代码中
getValue<LinearInterpolator>(image, pos, pelValue);
,我收到编译器错误“缺少模板参数列表”。我的问题是:我想做的事情是完全不可行的,还是我在这里遗漏了一些东西。
I am trying to use template function to do interpolation for pixel values.
I have two classes of interpolators that implements the interpolation algorithm.
class LinearInterpolator;
class NearestNeighborInterpolator;
I have different classes of images;
class ColorImage;
class GrayScaleImage;
I then have a function that does interpolation utilizing the specific interpolator you pick.
template<typename InterpType, typename ImageType, typename PelType>
bool getValue(const ImageType& image, PelPosition pos, PelType* pelValue);
In my calling code I have
getValue<LinearInterpolator>(image, pos, pelValue);
And I get the compiler error "missing template argument list". My question is: is what I am trying to do completely infeasible or am I missing something here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好的。 LinearInterpolator 的完整类声明实际上看起来像这样...
所以我最终从类型参数列表中取出 InterpType 并传入一个枚举作为参数...
旧>>>>
新>>>>
如果有更好的方法,欢迎评论。
All right. The full class declaration for LinearInterpolator actually looks like this...
So I ended up taking the InterpType out of the type parameter list and passing in an enum as the parameter...
Old >>>>>
New >>>>>
If there is a better way of doing it, please comment.