I can define a specialized function in a cpp like so...
// header
template<typename T>
void func(T){}
template<>
void func<int>(int);
// cpp
template<>
void func<int>(int)
{}
How can I define a method in a specialized class in a cpp? Like so (which doesn't work, I get error C2910: 'A<int>::func' : cannot be explicitly specialized
)...
// header
template<typename T>
struct A
{
static void func(T){}
};
template<>
struct A<int>
{
static void func(int);
};
// cpp
template<>
void A<int>::func(int)
{}
Use following syntax in your .cpp
file:
void A<int>::func(int)
{
}
This is Visual C++ kinda feature.
See MSDN C2910 error description for details:
This error will also be generated as a result of compiler conformance work that was done in Visual Studio .NET 2003:. For code will be valid in the Visual Studio .NET 2003 and Visual Studio .NET versions of Visual C++, remove template <>.