7
votes

Dans quelle mesure le "boost fait-il" équivalent à "très portable, l'utiliser"?

dans Cette réponse à une question demandant" fait z de cette façon portable "L'idée est" Boost le fait de cette façon, cela signifie qu'il est très portable ".

Puis-je toujours consulter des sources de boost pour trouver la manière la plus portable de faire quelque chose en C ++? Comment puis-je juger pour moi-même si Boost est vraiment une telle collection de code super portable?


0 commentaires

3 Réponses :


3
votes

Boost est livré avec un Lignes directrices sur la manière de programmer la portabilité; Les bibliothèques sont examinées comme acceptées avant acceptation - bien que le soutien du compilateur puisse être supprimé pour des bibliothèques particulières s'il n'existe pas de moyen raisonnable de mettre en œuvre les bibliothèques La raison d'être, et la bibliothèque apporte des concepts de pause - par exemple, Boost :: MPL DISN 't fonctionne bien sur les compilateurs de soleil pendant une longue période.

Donc, oui, vous pouvez simplement consulter les sources de bibliothèques - cependant, attendez-vous à un mal de tête majeur, codage portable nécessite des niveaux à des niveaux d'indirection.


3 commentaires

@Hassan: Juste pour savoir - a été mpl fonctionnant maintenant bien en raison du compilateur ne suivant pas la norme de manière approfondie ou que le code n'est pas écrit strictement adhérant à C ++ 03? La raison est curieuse, je ne pouvais pas comprendre pourquoi un code ne serait pas exécuté à la suite de la norme et du même doute avec les compilateurs.


Je ne connais pas les détails précis, bien que cela fonctionne sur des compilateurs récents.


Hmm. Ces directives n'exigent pas que le code fonctionne sur tous les compilateurs conformes et n'exige pas que le code fonctionne sur un compilateur non conforme. Ce n'est pas tout à fait ce qui est normalement signifié lorsque les gens disent: "Ce code est-il portable?", Bien que je voie le pragmatisme de l'approche de Boost - accepte une mise en œuvre de bibliothèques expérimentales si elle promet de la portée de la portabilité et de déterminer comment le portait plus tard. En pratique, le code de boost stable est beaucoup "meilleur" que ces directives spécifient.



4
votes

Boost est prey bien testé contre une variété de systèmes d'exploitation

Consultez Cette page


1 commentaires

C'est bon, merci pour le lien. Bien que je ne devrais mentionner que seules les plates-formes de bureau / serveur sont testées / répertoriées. J'ai utilisé boost :: Shared_ptr dans Windows Mobile qui a fonctionné sans faille. Comme tout est écrit dans l'en-tête, je n'ai même pas compilé de boost. Donc, un test couvrant un grand spectre devrait mieux aider.



4
votes

Il existe certains cas où des bibliothèques de boost existent précisément parce qu'elles enveloppent code très portable. Les exemples les plus évidents sont le système de fichiers et les trucs de filetage.

Le signe révélateur de ceci est une utilisation importante de macros boost.config. Boost Code qui ne dépend pas de Boost.Config (ou d'autres non-standard #Ifdefs) sera hautement portable.


0 commentaires