Mehrdeutigkeit "Byte"
-
Hallo Leute
[C++ Builder 6.0]
ich verwende eine Library, die sich selbst einen typedef Byte definiert.
Nun liefert mir der BCB-Compiler plötzlich die Fehlermeldung:**[C++ Fehler] SysInit.hpp(29): E2015 Mehrdeutigkeit zwischen 'Byte' und 'System::Byte'
**SysInit.hpp ist nicht der einzige Header, der den Fehler enthält.
windows.hpp, sysutils.hpp ... etc.Anmerkung:
Ich konnte das Projekt schonmal mit der Library bauen... Warum jetzt plötzlich diese Fehlermeldungen auftreten, ist mir schleierhaft.
Gibt es irgendein Define, damit die grausamen Namensraumkonventionen von Borland mal geradegezogen werden? ( NO_IMPLICIT_NAMESPACE_USE hab ich schon probiert )
gruß
Tobi
-
It0101 schrieb:
[C++ Builder 6.0]
ich verwende eine Library, die sich selbst einen typedef Byte definiert.Dann verwende diese Bibliothek nur in Quelldateien, die keine Windows- und Delphi-Header einbinden.
Ein Upgrade würde das Problem wahrscheinlich auch lösen. Mittlerweile erzeugt DCC in den Header-Dateien vollständig namespace-qualifizierte Deklarationen.
-
Danke
Hab es hinbekommen. Hab es so umgestrickt, dass keine System-Header an der Stelle included werden...
Trotzdem sind die Namensräume von Borland ein fürchterliches Ärgernis
-
It0101 schrieb:
Trotzdem sind die Namensräume von Borland ein fürchterliches Ärgernis
Sie waren es, vor acht Jahren
Aber um fair zu bleiben, erst mit C++Builder XE funktioniert NO_IMPLICIT_NAMESPACE_USE wirklich. (Und es heißt mittlerweile DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE, da NO_IMPLICIT_NAMESPACE_USE vom Typbibliotheks-Importer benutzt wird).