Full code line in header:
GenericValue& SetInt(int i) { this->~GenericValue(); new (this) GenericValue(i); return *this; }
The technique is called "placement new".
It seems to be a Visual Studio problem:
If DEBUG_NEW is defined in stdafx.h then code that uses placement new will not compile.
So try undefining that before including the header file or make a release build.