Ja. Auch Compiler sind Software, und können daher Fehler enthalten. Außerdem halten sich die wenigsten Compiler exakt an den Standard. Und schließlich hat noch fast jeder Compiler Erweiterungen, mit denen andere Compiler nichts anfangen können.
Mein Visual C++ 2008, das ich benutzt habe, um deinen Code zu testen, hat sich beispielsweise geweigert, deinen Code zu akzeptieren, weil die move-Funktion den Rückgabetyp int hat, aber am Ende keine return-Anweisung steht.
Ansonsten sollte dein Code aber von jedem halbwegs aktuellen Compiler richtig übersetzt werden. Ich vermute eher, dass beim Erstellen irgendetwas schiefgelaufen ist, und du immer eine alte Version des Programms ausgeführt hast.