Confused by asymmetric assignment operator templates
Hi,
Does anyone have an insight on why the code below produces linker errors claiming that the assignment operator template functions were not found ("LNK2019: unresolved external symbol", using MSVC 2008)? I assume I've messed something up, but can't figure it out myself...
Code:
-- a.h --
class A
{
template <class T> operator=(const T& value);
};
-- a.cpp --
#include "a.h"
#include <iostream>
template <typename T>
A& A::operator=(const T& value)
{
std::cout << value << std::endl;
return *this;
}
-- main.cpp --
#include "a.h"
int main(int argc, char** argv)
{
A a;
a = 1.0f;
a = "test";
return 0;
}
Any help or thoughts on the subject would be greatly appreciated :)