Хочу написать тело шаблонной функции отдельно от объвления класса.
#include "stdafx.h"
class A
{
public:
template <class T>
void f(T v);
};
template <class T>
inline void A::f(T v)
{
}
int main(int argc, char* argv[])
{
A a;
a.f((int)5);
return 0;
}
Но при этом случается вот такая ошибка.
Y:\Projects\Test\Test.cpp(22) : error C2893: Failed to specialize function template 'void __thiscall A::f(T)'
With the following template arguments:
'int'
А если засовываю определение функции в сам класс, то все нормально.
#include "stdafx.h"
class A
{
public:
template <class T>
void f(T v)
{
}
};
int main(int argc, char* argv[])
{
A a;
a.f((int)5);
return 0;
}
Как бы победить?