C++03 / C++11: Einige Fragen beim Schreiben einer Library
-
hustbaer schrieb:
Nur was nutzt uns das? Man kann nicht einfach VS 2005 und VS 2012 Code zusammenknoten, wenn das Interface C++ ist.
Kann man nicht?
Dann ziehe ich meine Bemerkung zurück. Da ich VS in der Praxis nicht kenne, war ich davon ausgegangen, dass sich das vernünftig verhält.
-
ichBinKnuddelig schrieb:
TyRoXx: Danke für die Vorschläge, aber [...]
Wie gesagt, man kann halt nicht alles haben. Boost ist genau für solche Zwecke ideal, ausserdem ist es wohl die meistgenutzte C++-Bibliothekssammlung.
SeppJ schrieb:
Kann man nicht?

Sind bei g++ die Binaries verschiedener Major-Releases kompatibel zueinander?
-
Nexus schrieb:
SeppJ schrieb:
Kann man nicht?

Sind bei g++ die Binaries verschiedener Major-Releases kompatibel zueinander?
Nicht nur die Major-Releases vom g++ (welche ungefähr 10 mal weniger sind als MSVC-Major-Releases).
Auch sind clang, gcc und andere Compiler (vermutlich auch Intel, IBM) zueinander binärkompatibel. Der gemeinsame Nenner ist die Itanium ABI.Probleme können Linkabhängigkeiten mit der glibc o.Ä. machen, aber die sind (bis auf seltene Kleinigkeiten) rückwärtskompatibel.
-
Das Problem bei __cplusplus ist doch dass das erst auf zb. C++11 gesetzt wird, wenn der Standard voll umgesetzt wird - meines Wissens nach gab es aber noch nie einen Compiler der einen Standard zu 100% umgesetzt hat, Blüten wie export etc sei dank.
Lieber mit __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__ und __GXX_EXPERIMENTAL_CXX0X__ arbeiten wenn der GCC das Ziel ist, bei Visual Studio wohl _MSC_VER
-
@SeppJ
Das Problem ist die Standard-Library.
-
Ethon_ schrieb:
...meines Wissens nach gab es aber noch nie einen Compiler der einen Standard zu 100% umgesetzt hat, Blüten wie export etc sei dank.
Comeau C++ konnte soviel ich weiß als einziger das von dir angesprochene export, und galt wenn ich mich richtig erinnere tatsächlich als komplett Standardkompatibel (Ich aber kein echter Compiler, sondern eher ein Meta-Compiler der aus C++ C macht, und dies an einen anderen Compiler weitergibt).
[Anderseits scheint Comeau inzwischen tot zu sein, Updates kommen jedenfalls seit langen keine mehr]
Ethon_ schrieb:
Das Problem bei __cplusplus ist doch dass das erst auf zb. C++11 gesetzt wird, wenn der Standard voll umgesetzt wird...
Man sollte zumindest darauf achten, welche Features von den Zielcompilern schon (richtig) unterstützt werden. Leider arbeiten wir z.B. noch mit dem C++ Builder (Und dank einer Problematik konnten wir noch nicht vom 2007ener wechseln, aber auch die neueren sollen wohl noch nicht wirklich gut den C++ Standard unterstützen).
-
Ethon_ schrieb:
Das Problem bei __cplusplus ist doch dass das erst auf zb. C++11 gesetzt wird, wenn der Standard voll umgesetzt wird - meines Wissens nach gab es aber noch nie einen Compiler der einen Standard zu 100% umgesetzt hat, Blüten wie export etc sei dank.
Wenn ich das richtig verstehe, unterstützt Clang zusammen mit der Libcxx mittlerweile C++11 zu 100%. Zumindest laut eigenen Angaben.