我在这里犯了一些愚蠢的错误,但我看不出是什么。
这编译:
//start of header.h
namespace ns
{
class A
{
public:
template <class t>t func();
};
template<class t> t A::func()
{
t a;
return a;
}
}
//end of header.h
//imp.cpp 的开始
//imp.cpp 结束
但以下没有:
//start of header.h
namespace ns
{
class A
{
public:
template <class t>t func();
};
}
//end of header.h
//start of imp.cpp
#include "header.h"
using namespace ns;
template<class t> t A::func()
{
t a;
return a;
}
//imp.cpp 结束
错误是:错误LNK2019:函数_main中引用的未解析的外部符号“public:int __thiscall ns::A::func(void)”(??$func@H@A@ns@@QAEHXZ)