Ich versuche, eine alte Bibliothek (die keine Namespaces verwendet, soweit ich das beurteilen kann) auf moderne Compiler zu portieren. Eines meiner Ziele kann den Unterschied zwischen System::TObject und ::TObject (ohne Namespace) nicht erkennen. System::TObject ist dem Compiler eigen.
Ich habe versucht, eine using-Direktive, d.h. using ::TObject;
Aber das reicht nicht aus.
Die offensichtliche Lösung besteht darin, die gesamte ursprüngliche Bibliothek in einen Namespace zu packen und sie dann namentlich aufzurufen - das sollte die Mehrdeutigkeit vermeiden. Aber ist das die vernünftigste Lösung? Gibt es eine andere Lösung? Das Hinzufügen eines Namensraums würde die Änderung einer Reihe von Dateien erfordern, und ich weiß nicht, ob dies später unerwünschte Auswirkungen haben würde.