Ok. C'est un bon point. Mais pas quand on commence un nouveau projet.
on a besoin de portabilité,
Quel genre de portabilité ? C++ est très portable.
une librairie dynamique (les problèmes de mangling en C++, c'est super pénible),
En quoi c'est pénible ? Il y a des bibliothèques qui font la conversion des noms de symboles pour toi.
une librairie qui sera bindée dans plusieurs language de plus haut niveau (Java, C++, Python, ...),
Déjà tu peux toujours utiliser extern "C" pour exporter une interface plus « simple ».
Ensuite, Python et Java étant des langage objets eux aussi, c'est plus facile de mapper le concept d'objet d'un langage vers l'autre en C++ qu'en C. Dans tous les cas tu dois faire un effort pour faire des bindings. (Passage du type string d'un langage vers char* ou vers std::string c'est le même travail. Mais pour le second, la gestion de la mémoire est claire.)
[^] # Re: Oublies le C.
Posté par Gof (site web personnel) . En réponse au journal C(++) ?. Évalué à 0.
Ok. C'est un bon point. Mais pas quand on commence un nouveau projet.
Quel genre de portabilité ? C++ est très portable.
En quoi c'est pénible ? Il y a des bibliothèques qui font la conversion des noms de symboles pour toi.
Déjà tu peux toujours utiliser
extern "C"pour exporter une interface plus « simple ».Ensuite, Python et Java étant des langage objets eux aussi, c'est plus facile de mapper le concept d'objet d'un langage vers l'autre en C++ qu'en C. Dans tous les cas tu dois faire un effort pour faire des bindings. (Passage du type string d'un langage vers char* ou vers std::string c'est le même travail. Mais pour le second, la gestion de la mémoire est claire.)