Developpez.com - Rubrique C++

Le Club des Développeurs et IT Pro

Bibliothèques C++ : découvrez une sélection de bibliothèques C++ pour répondre à vos différents besoins

Lesquelles utilisez-vous ?

Le 2009-07-13 11:32:24, par 3DArchi, Rédacteur
Bonjour,
Suite à un travail de longue haleine de l'équipe C++, la rédaction vous propose une page Bibliothèques C++. Cette page regroupe et présente par thème différentes bibliothèques utilisables en C++ et couvrant des besoins régulièrement demandés :
  • Bibliothèque générales (et génériques)
  • Mathématiques
  • Compression
  • I.H.M.
  • Traitement d'images
  • Multimédia
  • Son
  • X.M.L.
  • Gestion de console
  • Réseau.

Vous pouvez trouver ces présentations en suivant ce lien et à tout moment dans la barre des boutons ci-dessus.

Utilisez-vous régulièrement quelques unes de ces bibliothèques ? Lesquelles ? Et pourquoi ?
  Discussion forum
31 commentaires
  • Goten
    Membre chevronné
    Cool . J'aime bien la présentation elle est clair et stylée.
    Par contre au niveau multimédia, la sfml n'a pas sa place?
  • 3DArchi
    Rédacteur
    Envoyé par Goten
    Cool . J'aime bien la présentation elle est clair et stylée.
    Par contre au niveau multimédia, la sfml n'a pas sa place?
    Si certainement. Il s'agit de la première version de cette page. Elle est bien sûr destinée à s'enrichir des différentes propositions et remarques que vous pourrez apporter
  • caradhras
    Membre habitué
    Cool! Encore merci pour tout le travail fait par les bénévoles de Developpez.com !!!

    Je ne sais pas si elles ont leur places dans cette liste mais on peut peut-être rajouter des bibliothèques propres aux environnements windows comme GDI+ pour le traitement d'image et MSXML pour le XML?
  • Mac LAK
    Inactif
    On pourrait aussi ajouter POCO (abstraction de plate-forme) et ICE (communication type CORBA/RPC) dans la liste...

    Elles sont open-source, gratuites (au minimum pour les particuliers et le freeware, il y a des restrictions pour les utilisations commerciales), et (pour une fois !!) extrêmement bien documentées, avec un support plutôt réactif.
  • Mac LAK
    Inactif
    J'oubliais, mais vu qu'elles sont en C ça risque peut-être de ne pas cadrer nickel :
    • LZO pour la compression temps réel. J'avoue ne jamais avoir essayé de la compiler en mode C++ par contre.
    • PThread-W32 pour avoir directement l'API pthread sous Windows (à but de portabilité principalement, bien sûr).


    A déplacer vers les librairies C au besoin...
  • ptyxs
    Membre averti
    Ne pourrait-on ajouter :
    - la libcsv pour le traitement des fichiers au format .csv (EDIT : mais il est vrai qu'elle est en C...)
    - la librairie graphique FLTK (utilisée dans le dernier livre de Stroustrup Programming : Principles and Practise Using C++)
  • Luc Hermitte
    Expert éminent sénior
    Tu as des retours sur ICE ?
    Je l'ai vu passée, mais n'ai guère eu le temps de l'expérimenter pour la comparer à une solution CORBA via ACE+TAO.
  • Luc Hermitte
    Expert éminent sénior
    Flagguer SGI comme éditeur de la STL me parait un peu bizarre.
    Entre STLport, dinkumware, roguewave/apache, VC10 (j'ai l'impression qu'ils font cavalier à part cette fois), et SGI, je trouve bizarre de dire SGI comme éditeur.

    Même si ce n'est pas encore prêt pour de l'exploitation, j'aurai bien vu adobe.ASL. (il y a pas mal d'innovations chez eux)

    POCO (non testée personnellement) mériterait d'être listée je pense.

    De même que stlsoft qui vient avec quelques projets satellites à la boost.format ou de logs qui mériteraient d'être listés.

    Il manquerait aussi une section TU qui devrait au minimum lister CxxTest, FRUCTOSE, boost.test, et le truc de google. CppUnit pourrait aussi être listée pour le nom, mais ce n'est franchement pas ma préférée.

    Pour la console il faudrait au minimum rajouter (n)curses/pdcurses, même s'il s'agit de C -- ou déplacer readline vers les bibliothèques C...

    En traitements d'images, il y a ITK.

    ACE fait bien plus que le réseau. En matière de patterns orientés multi-tâche, il s'agit encore de la bibliothèque la plus complète pour l'instant. Plus diverses choses qui touchent à tout parmi ce dont on a régulièrement besoin sur les projets pro (log, fichiers de conf, singletons, pointeurs intelligents, couche d'abstraction de l'OS). Maintenant on a vu plus simple à utiliser depuis.

    Dans le genre MT il faudrait rajouter les openMP-like, intel TBB, ...

    PS: j'utilise xerces et je n'aime pas du tout -- j'ai l'impression de faire un bond dans le passé à tout devoir gérer à la main. Et puis je suis sûr que l'on doit pouvoir faire mieux que SAX et DOM pour manipuler de l'XML -- j'avais croisé des expériences à ce sujet dans le passé.
  • 3DArchi
    Rédacteur
    Salut,
    Comme je l'ai dit précédemment, cette page a vocation à évoluer en fonction des changements, remarques et propositions des différents contributeurs. N'hésitez pas à proposer ici-même les compléments et ajouts que vous souhaitez voir apparaître. Cela concerne principalement les bibliothèques C++, mais les bibliothèques C peuvent être référencées soit dans la page C, soit dans la page C++ si elle possède un wrapper C++ ou sont tellement utilisées que leur indexation se justifie.
  • Mac LAK
    Inactif
    Envoyé par Luc Hermitte
    Tu as des retours sur ICE ?
    Je l'ai vu passée, mais n'ai guère eu le temps de l'expérimenter pour la comparer à une solution CORBA via ACE+TAO.
    Oui, je l'ai utilisé. C'est très bien, pratique d'utilisation, efficace et portable nativement dans plusieurs langages (C++, C#, Java, Python, ...).

    Son seul "défaut" : pas d'intégration réellement pratique dans un IDE comme Visual (faut se faire les règles à la main), ce qui peut parfois poser des soucis si l'on ne désire mettre en configuration que le fichier de description et non pas le code généré.

    Autrement, c'est très pratique : il y a bien sûr la communication type CORBA, RPC, mais aussi la publication type lecteur/rédacteur, la configuration centralisée, le patch automatique, etc.

    J'utilise également ACE, et franchement, rien à voir : ACE a toujours été "fouilli", mal documenté et trop lourd à utiliser à mon sens. Je ne l'utilise finalement qu'en couche d'abstraction d'OS (types, fonctions, threads, sockets) et non pas en couche réseau de haut niveau.

    Envoyé par Luc Hermitte
    POCO (non testée personnellement) mériterait d'être listée je pense.
    En fait, pour ma part, je vise à dégager ACE (qui fait tout, mais trop mal foutu) au profit de POCO+Ice... POCO pour l'abstraction (je n'ai pas besoin de tous les OS de la planète et POCO supporte ceux qui m'intéressent), et ICE pour la communication et le transfert entre langages / plate-formes.

    Envoyé par Luc Hermitte
    ACE fait bien plus que le réseau. <snip> Maintenant on a vu plus simple à utiliser depuis.
    C'est exactement ce que je lui reproche, en fait. Ceci étant dit, il supporte des OS exotiques que peu d'autres librairies d'abstraction supportent, il faut lui rendre cette justice. Si l'on veut vraiment être portable au maximum, ACE reste un bon choix.
    Si ce que l'on appelle "portabilité" se résume à Windows, Linux et un *nix quelconque de plus (type Mac OS X, QNX, etc.), ACE est dépassé largement par des librairies bien plus efficaces et propres, comme justement POCO.

    Envoyé par Luc Hermitte
    PS: j'utilise xerces et je n'aime pas du tout -- j'ai l'impression de faire un bond dans le passé à tout devoir gérer à la main. Et puis je suis sûr que l'on doit pouvoir faire mieux que SAX et DOM pour manipuler de l'XML -- j'avais croisé des expériences à ce sujet dans le passé.
    Je n'aime pas spécialement Xerces non plus, mais Altova (très pratique, par contre) n'est hélas pas gratuit... Loin de là, même.
    J'ai également ce goût de "préhistoire" par rapport à son API...