繁体   English   中英

以class为参数调用模板类的静态模板方法

[英]call static template method of template class with class as parameter

具有(i)模板和(ii)类本身作为参数的模板类的static方法没有什么问题吗? 考虑上课

template<class Projection>
struct FrameData {
    // ...
    template <bool devPtr>
    static void allocate(FrameData<Projection> &data) {
        // ... do allocations ...
    }

}

这在文件A的头中声明。 在世界其他地方,我有类似的东西

template <class Projection>
void some_method(FrameData<Projection> &m_data) {
    FrameData<Projection>::allocate<true>(m_data);
}

我最后有一些

error: reference to overloaded function could not be resolved; did you mean to call it?
  • 是否有某种类似.template方法适用于static方法, 如此处的答案
  • 参数FrameData<Projection>是问题吗? 还没有完全定义吗?

从技术上讲,这个世界上的其他任何地方都在源文件中,底部带有一些显式实例化,但是我将所有这些都放入一个文件中,并且存在相同的错误。 感谢您提供任何见解,请不要在非标题模板上羞辱我。 这不是我的选择。

是否有某种类似.template的方法适用于静态方法,如此处的答案?

是。

template <class Projection>
void some_method(FrameData<Projection> &m_data) {
    FrameData<Projection>::template allocate<true>(m_data);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM