T.M. schriebC++ benutzt compilerabhängiges mangeling, um eine C++-Klasse, was physisch ja nichts weiter als ein Speicherbereich fester Länge, in dem die Variablen liegen, und ein Sack voll C-Funktionen ist, so in einer C-Bibliothek abzulegen, daß hinsichtlich C++ kein Informationsverlust auftritt. Dies führt in der Regel zu nicht gut lesbaren Funktionsprototypen, die nur von Compiler und Linker (und ar und ranlib usw.) benutzt werden können. Das ist insofern durchaus legitim, wie ja auch Bibliotheken anderer Sprachen meist nur für diese und sogar nur für bestimmte Compiler nutzbar sind. Daß man aber mit C++ sehr wohl hoch portable (und zwar besser portable als in C) und universell verwendbare Bibliotheken erstellen kann, ist keine Zauberei, und man kann sogar zu existierenden C++-Bibliotheken eigene C-Wrapper schreiben.
Danke für die Erklärung! Allerdings widerspricht das ja auch wieder nicht dem, was ich oben angesprochen habe; nämlich der Tatsache, dass es in der Praxis eben meist nicht so einfach ist, sich schnell mal seine Bindings zu einer C++-Bibliothek zu schreiben. Der Vorschlag, C-Wrapper zu schreiben zeigt ja schon, in welche Richtung die Sache geht -- nicht gerade in eine angenehme. Für mich bedeutet Bindings zu schreiben /nicht/, die Vorteile dynamischer Sprachen aufgeben zu müssen, was im Falle des Schreibens eines C-Wrappers der Fall wäre. Alles, was in diese Richtung geht, ist für mich (für andere vielleicht nicht) ein fundamentaler Nachteil, da ich so einfach nicht arbeiten /will/.
Plattformübergreifender als C mögen diese Bibliotheken durchaus sein, aber was ich sage ist lediglich, dass sie für mich schwerer zu nutzen sind, beziehungsweise für andere, die größere Bindings schreiben. Diese Aussage erhebt keinen Anspruch auf absolute Wahrheit, sondern gründet sich auf Erfahrung im Suchen von Bindings für Bibliotheken und meine Erfahrungen im schreiben derselben (sprich: In C ist das für meine Anforderungen nie ein Problem gewesen, bei C++ wüsste ich nicht einmal, wo ich anfangen sollte -- wahrscheinlich würde ich direkt in C wrappen, weil ich 1. kein C++ Experte bin, noch einer sein möchte und 2. das nicht nur auf mich zutrifft.)
Es ging auch nicht darum, C++ zu disqualifizieren, sondern lediglich ein real existierendes Problem aufzuweisen, das (zumindest heutzutage in der Praxi) noch besteht -- Wenn auch vielleicht nicht für jeden, so bin jedenfalls ich schon des Öfteren auf die von mir oben paraphrasiert wiedergegebenen Aussagen gestoßen.