C'est parce que vous avez le code suivant:
class JSONDeserializer
{
Value JSONDeserializer::ParseValue(TDR type, const json_string& valueString);
};
Ce n'est pas valide en C++, mais Visual Studio semble l'accepter. Vous avez besoin de changer le code suivant pour être en mesure de le compiler avec un standard conforme compilateur (gcc est plus conforme à la norme sur ce point).
class JSONDeserializer
{
Value ParseValue(TDR type, const json_string& valueString);
};
L'erreur vient du fait que JSONDeserializer::ParseValue
est un nom qualifié (un nom avec un espace de noms de qualification), et ce nom est aussi interdit d'utiliser un nom de méthode dans une classe.