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? p>
5 Réponses :
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. P>
L'un des avantages que Dans cet article, Stroustrup parle d'une nouvelle idée appliquée dans certains compilateurs C ++ appelés 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é. p>
blockQuote>
Donc, si STDXX code> STDXX semble être fidèle à moi: p>
effrayant code>
. J'ai d'abord lu à ce sujet dans un de ses papiers . Quoi qu'il en soit, cette la fonction em> permet de réduire la taille des exécutables produits par une grande quantité (~ 1x - ~ 25x) code> et plus vite par
(~ 1.2x - ~ 2.1x) code>. Dans le premier papier, il a dit que
Rogue Wave STL code> prend en charge
effrayant code>, au moins dans les implémentations modernes: p>
STDXX code> est basé sur
Rogue Wave STL code>, il pourrait avoir cette idée déjà mise en œuvre. P>
STDXX a été fourchu en 2005; Le papier effrayant est beaucoup plus récent.
La bibliothèque standard Apache C ++ Le projet est une mise en œuvre complète de la norme ISO / IEC 14882 C ++ Bibliothèque. P>
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. P> blockQuote>
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. P>
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. p>
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: p>
Tout dépend des installations dont vous avez besoin. P>
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 p>
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.