Hi all, 
 
Im building a variant class that I want to make work, but Im running into compiler issues; issues that highlight that I have no idea what is going on under the hood for operators in C++. 
 
My class looks something like: 
 
 
class Variant
{
public:
	//Constructors
	Variant(void) : type(VAR_INTTYPE), int64value(0), databuffsize(0), databuff((char*)0) {}
	Variant(int);
	Variant(long long);
	Variant(double);
	Variant(const char* in);
	Variant(char* in);
	Variant(Variant & in);//Copy Constructor
	~Variant();//Destructor
	//Operators
	Variant& operator= (Variant&);
	Variant& operator= (Variant);
	//Other irrelvant code...
}
And Im trying to do things like: 
 
 
Variant test;
int main()
{  
	test = Variant(20); //btw, I have no intention of implementing assignment ops for primitive types for various reasons
	Variant lol(7);
	lol = test;
	return 0;
}
In GCC (mingw) this is throwing errors like: 
  
 
Any ideas what constructors or operators I am missing? I have looked around and cannot find any solution to my problem. 
 
Thanks in advance.