10
votes

Pourquoi devrais-je utiliser la bibliothèque standard Apache C ++ plutôt que toute autre mise en œuvre STL avec Boost?

quels avantages dois-je obtenir de Apache C ++ Standard Library que je ne reçois pas de mises en œuvre stl qui viennent avec le compilateur et des bibliothèques de boost?


3 commentaires

On m'a suggéré d'utiliser la bibliothèque standard C ++ d'Apache dans mon projet car elle est "portable" et dispose également d'un ensemble riche de collections et de nombreuses autres mises en œuvre d'algorithmes. Je ne veux pas suivre aveuglément la suggestion, alors cherche des commentaires de personnes qui ont une meilleure connaissance et une meilleure expérience en utilisant différentes bibliothèques de modèles. Merci.


À propos de votre partie Boost: demandez-vous si vous devez utiliser Apache C ++ Standard Library à la place de Boost? Ou booster à la place d'une mise en œuvre stl


J'utilise STL et boost si nécessaire (par exemple, des pointeurs intelligents). La question est donc STDXX à la place de STL et de boost. Merci.


5 Réponses :


1
votes

La bibliothèque Apache C ++ était à l'origine une bibliothèque commerciale de Rogue Wave. Ils prétendent suivre de manière très étroitement la norme C ++ et travailler dur pour assurer la portabilité à travers divers systèmes d'exploitation et compilateurs. La bibliothèque de vagues de voyous affirmait avoir été portée à plus de 40 compilateurs.


0 commentaires

5
votes

L'un des avantages que STDXX STDXX semble être fidèle à moi:

  • optimisé pour des compiles rapides et Tailles de fichiers exécutables extrêmement petits

    Dans cet article, Stroustrup parle d'une nouvelle idée appliquée dans certains compilateurs C ++ appelés effrayant . J'ai d'abord lu à ce sujet dans un de ses papiers . Quoi qu'il en soit, cette la fonction permet de réduire la taille des exécutables produits par une grande quantité (~ 1x - ~ 25x) et plus vite par (~ 1.2x - ~ 2.1x) . Dans le premier papier, il a dit que Rogue Wave STL prend en charge effrayant , au moins dans les implémentations modernes:

    la version la plus récente de Rogue Wave Stl a un conteneur indépendant itérateurs dans son mode de production, mais certains des conteneurs standard ' Les itérateurs ne sont pas indépendants en débogage mode. N2911 explique que ces Les dépendances ne sont pas réellement nécessaires pour déboguer et peut facilement être enlevé.

    Donc, si STDXX est basé sur Rogue Wave STL , il pourrait avoir cette idée déjà mise en œuvre.


1 commentaires

STDXX a été fourchu en 2005; Le papier effrayant est beaucoup plus récent.



5
votes

La bibliothèque standard Apache C ++ Le projet est une mise en œuvre complète de la norme ISO / IEC 14882 C ++ Bibliothèque.

la caractéristique la plus distinctive de cette implémentation de la C ++ La bibliothèque standard est sa portabilité à un grand nombre de compilateurs C ++, Systèmes d'exploitation et matériel Architectures.

sonne comme si vous valorisez la portabilité extrême, c'est pour vous. Si vous ne le faites pas, la plupart de tout le monde par défaut l'implémentation par défaut de leur compilateur, donc si vous avez des problèmes, la communauté sera plus grande. Si vous ne rencontrez pas de problèmes de mise en œuvre, je ne vois pas pourquoi cela devrait faire une grande différence.

Je suis généralement flammé pour cet avis, mais j'aime l'idée d'avoir une entreprise, je peux payer pour résoudre les problèmes, mes développeurs (et i) ne sont pas assez intelligents (ou ne pas avoir le temps) de plonger dans les internes et corriger des bugs.


0 commentaires

0
votes

Je ne connais pas la bibliothèque standard Apache C ++, donc je ne sais pas quelles installations il a. Si vous constatez qu'il fournit tout ce dont vous avez besoin, il n'ya pas une grande partie de la différence en utilisant cela ou en utilisant une autre implémentation stl aux côtés de Boost. Cependant, Boost offre beaucoup plus que certaines caractéristiques TR1 et de petites choses comme des pointeurs intelligents. Il a aussi:

  1. lambdas / fermetures
  2. Modèle et métaprogrammation de préprocesseur
  3. Signaux et machines à sous / Observateur / Modèle d'auditeur
  4. wrappers de référence
  5. Beaucoup d'autres choses aléatoires que vous n'êtes pas susceptible de trouver ailleurs dans une seule bibliothèque

    Tout dépend des installations dont vous avez besoin.


0 commentaires

2
votes

Malheureusement, cette bibliothèque n'est plus prise en charge à partir de juillet 2013. Voir l'annonce de la liste de diffusion: http://mail-archives.apache.org/mod_mbox/stdcxx-dev/201307.mbox/browser


0 commentaires