leicht Schnittstellen mit C
.Link-Kompatibilität zwischen C++ und D
genauso einfach Schnittstellen mit C++
, aber (und es ist ein großes aber) die C++
muss extrem trivial sein. Der Code kann nicht verwendet werden:
- Namespaces
- Vorlagen
- Mehrfachvererbung
- Mix virtuelle mit nicht-virtuellen Methoden
- mehr?
Ich verstehe die Vererbungsbeschränkung vollständig. Der Rest fühlt sich jedoch wie künstliche Beschränkungen an. Jetzt möchte ich std::vector<T>
nicht direkt verwenden können, aber ich würde wirklich gerne mit std::vector<int>
als externe Vorlage verknüpfen können.
Die C++ interfacing page hat diesen besonders deprimierenden Kommentar.
D-Vorlagen haben wenig gemein mit C++ Vorlagen, und es ist sehr unwahrscheinlich, dass jede Art von angemessener Methode C++ Vorlagen in eine Link-kompatible Weise mit D.
gefunden werden konnte auszudrückendas bedeutet, dass der C++ STL und C++ Boost, wird wahrscheinlich nie
Zugegeben von D. zugänglich sein ich werde probabl y nie brauchen std::vector
während der Codierung in D
, aber ich würde gerne QT oder boost verwenden.
Also, was ist das Geschäft. Warum ist es so schwer, nicht-triviale C++
Klassen in D auszudrücken? Wäre es nicht wert, einige spezielle Anmerkungen oder etwas hinzuzufügen, um wenigstens Namespaces auszudrücken?
aktualisieren: von Walter Bright "D Namespace-Unterstützung in Arbeit hat".
Es wird sogar von keinem Mainstream-C++ - Compiler unterstützt. Warum sollten Sie erwarten, dass eine andere Sprache dies unterstützt? –
@Hans, was * es * meinst du? –
Ich denke, was er meint, ist "Linking zu C++ von Compiler X erzeugt" wird nicht einmal von {Mainstream C++ Compiler} \ X unterstützt. – FeepingCreature