Having template function defination in cpp file - Not work for VC6
- by Yan Cheng CHEOK
I have the following source code :
// main.cpp
#include "a.h"
int main() {
A::push(100);
}
// a.cpp
#include "a.h"
template <class T>
void A::push(T t) {
}
template void A::push(int t);
// a.h
#ifndef A_H
class A {
public:
template <class T>
static void push(T t);
};
#endif
The code compiled charming and no problem under VC2008.
But when come to my beloved VC6, it give me error :
main.obj : error LNK2001: unresolved
external symbol "public: static void
__cdecl A::push(int)" (?push@A@@SAXH@Z)
Any workaround? I just want to ensure my function definition is re-inside cpp file.