Define template specialization in cpp?
c++, template-specialization, templates, visual-studio
Solution
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 <>.
Problem
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) {} ```