Kann jemand mir helfen zu verstehen, ist das richtige Verhalten oder nicht.
Betrachten Sie dieses Beispiel:
%Vor%Mit gcc 4.7.3 kompiliert es einfach und gibt '0' wie erwartet aus.
Aber mit dem Visual Studio-Compiler wird ein ambiguous error (C2593)
gemeldet.
Wer hat Recht in dieser Situation und was sagt standard
dazu?
Danke.
Mit ziemlich neuen Versionen (dh den letzten Leitern der Entwicklungszweige) von gcc und clang zeigt ebenfalls eine Mehrdeutigkeit. Ich hätte gedacht, dass die Überladung, die ein Array nimmt, besser ist, aber es scheint, dass der Code mehrdeutig ist. Ich habe jedoch die relevanten Klauseln im Standard noch nicht aufgespürt.
Wie ich verstehe, funktioniert das einfache Überladen in neuen Versionen von gcc nicht und funktioniert bereits in VC10 nicht.
Wenn also jemand sich wundert, wie man dieses Problem beheben kann, ist eine Lösung:
%Vor%Kompiliert mit VC10, gcc-4.6.3 und gcc-4.8.1. Scheint korrekt zu funktionieren.