【发布时间】:2010-10-23 20:05:06
【问题描述】:
我可以从静态成员函数调用非成员静态模板函数,其中定义被拆分为 header 和 cpp:
// zero.cpp
class Zero
{
static void zero() { one(5); }
};
// one.h
template <typename T>
static void one(T& var);
// one.cpp
template <typename T>
void one(T& var) { }
// main.cpp
...
Zero::zero()
...
我在获取此链接时遇到问题,我不断收到对我试图在 one.cpp 中定义的函数的未定义引用。
最初我认为这是由于命名空间的问题,但现在所有文件都在同一个命名空间中。我在这里做错了什么吗?
【问题讨论】:
-
这是一百万次的重复,但是在实际查找内容方面确实很糟糕。愚蠢的 SO 搜索。
标签: c++ templates linker static-methods