模板类的static
方法有(i)模板和(ii)类本身作为参数,没有错吗?考虑班级
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
方法like the answer here是否存在某种类似的static
魔法?FrameData<Projection>
是问题吗?它尚未完全定义?在这个世界的其他地方技术上是在一个源文件中,底部有一些明确的实例化,但是我把它全部放在一个文件中,但是有相同的错误。感谢您的任何见解,请不要在非标头模板上羞辱我。这不是我的选择。
答案 0 :(得分:6)
对于像这里的答案这样的静态方法,是否存在某种类似的.template魔法?
是
template <class Projection>
void some_method(FrameData<Projection> &m_data) {
FrameData<Projection>::template allocate<true>(m_data);
}