Einzelnen Beitrag anzeigen

matmok

Registriert seit: 9. Feb 2006
Ort: Köln
22 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: überl AnsiString operator des Variant; CB6 vs RadStudio2

  Alt 16. Mai 2008, 13:30
...alle updates sind installiert.
Ja, Der neue Compiler besteht auf Eindeutigkeiten. Sind diese verletzt so gibt es Fehler statt wie bisher nur eine Warnung. Das finde ich gut, so wird man zu besserem Code gezwungen.

Aber abgesehen vom Compiler ist es eine grundsätzliche c++ Frage; Ich dachte bisher, dass dises ein implizierter Cast ist und den überladenen Operator "AnsiString" des Variant aufruft: "(AnsiString)MyVariant". Dieses sollte also das gleiche sein wie "MyVariant.operator AnsiString()". Bei der ertsen Version scheint der Compiler es aber so zu übersetzen als wäre es ein Aufruf des AnsiString Konstruktors, also das gleiche wie "AnsiString(MyVariant)", denn die Fehlermeldung zeigt die "Ambiguity between System::AnsiString::AnsiString(...) und System::AnsiString::AnsiString(---)".

Die Frage ist nun ob ich mein Verständnis von C++ rekalibrieren muß, oder ob der Compiler tatsächlich C++ falsch übersetzt, was ich mir ehrlichgesagt kaum vorstellen kann.

matmok
  Mit Zitat antworten Zitat