2009-06-20 11 views
3

J'ai entendu parler de Boost et ACE comme deux des bibliothèques C++ bien connues. Quelles sont les autres bonnes bibliothèques C/C++ disponibles? Est-ce que Boost et ACE prennent en charge la gestion de session pour les applications Web écrites en C/C++?Meilleures bibliothèques C/C++ pour maintenir l'état de session dans une application CGI?

EDIT: Ok, je vais essayer d'être spécifique au domaine. Je suis à la recherche d'une bibliothèque C/C++ qui pourrait m'aider à maintenir l'état de session pour une application web CGI basée sur C++.

+5

bonnes bibliothèques pour quoi? – Macarse

+2

C/C++ n'est pas une langue unique, et l'utilisation idiomatique peut être très différente entre eux. Boost et ACE sont deux bibliothèques C++. – Tom

+1

Veuillez rétrécir le titre pour qu'il corresponde à "EDIT". –

Répondre

5

Cela dépend si vous parlez de bibliothèques générales ou spécifiques au domaine. Pour l'usage général Boost est le meilleur de la race (et n'oublie pas le bon vieux STL), donc je ne vois pas le point de chercher autre chose qui couvrira une grande partie du même terrain, mais n'est pas aussi poli. Pour ce qui est spécifique de domaine que vous devez spécifier le domaine :-)

2

C++ possède des bibliothèques pour tout ce que vous pouvez imaginer, donc la portée de votre question est assez vague. Qu'est-ce qui vous intéresse? Applications Web, programmes scientifiques, interfaces graphiques? Précisez ce dont vous avez besoin exactement si vous voulez une bonne réponse. Boost est une bibliothèque à usage général pour les choses de relativement bas niveau. C'est plutôt complexe et avancé, donc vous devriez avoir une bonne compréhension de C++ avant de commencer. ACE est principalement pour la synchronisation et la communication entre les threads/processus/applications.

Si des applications Web est ce que vous avez besoin, je vous recommande fortement de considérer la langue que vous la cueillette. C++ n'est peut-être pas la meilleure direction à suivre ici, sauf si vous avez des contraintes très spécifiques qui forcent votre main.

1

Il y a aussi GTK ce qui est bon si vous avez besoin d'avoir un ou utiliser unicode IUG. (bien que c++0x devrait avoir un meilleur support unicode nativement lorsque la norme est complète).

Boost ne supporte pas encore les sessions, mais un CGI library a été proposé qui devrait avoir des sessions.

Si vous souhaitez utiliser C++ pour les applications Web, envisagez d'utiliser CGICC

6

Lorsque vous essayez de construire une application web en C++ je vous recommande Wt, un cadre semblable à Qt pour créer des applications web en C++ . Il gère les sessions en un seul processus par session (lorsque la sécurité est importante) ou plusieurs sessions par processus. Vous pouvez utiliser le serveur Web intégré ou l'utiliser avec n'importe quel serveur Web prenant en charge FastCGI.

(Aussi, je le recommande sur Boost.CGI comme il semble être maintenu et fonctionnalités complètes).

3

Si vous êtes intéressé par C (pas C++), glib (la bibliothèque utilitaire du projet Gnome) fournit un certain nombre de structures de données et de constructions utiles.

1

Poco est une excellente bibliothèque C++ avec accès aux données, XML, la mise en réseau, la compression et Crypto tout enveloppé dans petit paquet une fois agréable.

1

Boost évidemment, QT pour l'interface graphique (ce n'est pas clairement une bibliothèque, je sais), Electronic Arts Standard Template Library et Blitz++ si vous voulez faire le calcul scientifique:

Blitz ++ est une bibliothèque de classes C++ pour calcul scientifique qui fournit performances à égalité avec Fortran 77/90.

Le langage de programmation C++ offre de nombreuses fonctionnalités utiles pour faire face à des problèmes de scientifiques complexes: héritage, le polymorphisme, la programmation générique et la surcharge d'opérateur sont quelques-uns des plus importants. Malheureusement, ces fonctionnalités avancées est venu avec une bonne performance pricetag: jusqu'à récemment, C++ retardé derrière les performances de Fortran par de 20% à un facteur de dix. Par conséquent, l'adoption de C++ pour le calcul scientifique a été lente.

est-il un moyen de soupe en C++ afin que nous pouvons garder la langue fonctionnalités avancées, mais la mauvaise performance fossé ? Tel est l'objectif du Blitz ++ projet: développer des techniques qui permettront C++ de rivaliser - et même dans certains cas dépasser - la vitesse de Fortran pour le calcul numérique, tout en conservant une interface orientée objet . Le Blitz ++ Numérique Bibliothèque est en cours de construction en tant que banc d'essai pour ces techniques.

benchmarks récents montrent C++ empiétant régulièrement sur haute performance monopole de Fortran, et pour certains points de référence, C++ est encore plus rapide que Fortran! Ces résultats sont obtenus non par l'intermédiaire de mieux optimiser les compilateurs, préprocesseurs, ou extensions de langue, mais grâce à l'utilisation du modèle techniques. En utilisant les modèles intelligemment, des optimisations telles que la fusion fusion, déroulant, carrelage, et spécialisation d'algorithme peuvent être effectué automatiquement au temps de compilation .

Un autre but de Blitz ++ est d'étendre le modèle de réseau dense classique à incorporer de nouvelles fonctionnalités utiles. Certains exemples de telles extensions sont les formats de stockage flexibles , la notation tensorielle et les espaces réservés d'index.

Questions connexes