6 votes

Où puis-je voir le code utilisé dans les bibliothèques standard C ++?

Quand je compile un programme avec #include

Où puis-je voir le contenu de ce fichier, et aussi puisque ce fichier contient des déclarations, où puis-je voir le code réel utilisé dans ces fonctions?

Est-ce ouvert à tout le monde ou n'est-il pas disponible au public?

5voto

David Titarenco Points 17148

Le code réel se trouve dans les bibliothèques standard spécifiques à la plateforme livrées avec votre compilateur, vous pouvez le voir en consultant la source de l'implémentation de la bibliothèque standard.

Voici la documentation (et la source) pour libstdc++ par GNU (il est livré avec gcc): http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html.

Téléchargez la source à partir de l'un de ces miroirs : http://gcc.gnu.org/mirrors.html

4voto

John Smith Points 4266

Généralement le fichier inclus est lisible, mais la bibliothèque qu'il implémente n'est généralement pas lisible. Les fichiers inclus sur un Mac se trouvent dans /usr/include/c++.

Le code de la bibliothèque dépend du compilateur. Pour Gnu C++ utilisé sous linux et Mac, vous pouvez certainement voir le code. Vous devrez peut-être le télécharger. Il est disponible sur http://gcc.gnu.org/libstdc++/

Je ne pense pas que le code de la bibliothèque C++ de Windows soit disponible.

2voto

Jim Brissom Points 10282

Il dépend de l'outil que vous utilisez, tous les vendeurs ne rendent pas leur implémentation publique. Vous pouvez jeter un œil à la bibliothèque C GNU pour commencer : http://www.gnu.org/software/libc/

Dinkumware, la société derrière la bibliothèque de modèles standard C++ utilisée dans Visual Studio par exemple, propose un produit commercial, donc le code n'est pas disponible pour tout le monde - cela dépend vraiment de votre licence. Certaines versions de Visual Studio incluent en effet le code source de la runtime.

Quant à l'ATLS, il y a aussi STLport, une implémentation de l'ATLS open source.

Votre meilleure option sera en effet les projets sur lesquels dépendent gcc/g++.

2voto

haffax Points 2837

Le standard C++ en lui-même est justement cela : un standard. Son implémentation est réalisée par de nombreux fournisseurs. STLport et GNU libstdc++ sont tous deux open source et peuvent être considérés dans leur ensemble. Visual Studio est fourni avec la bibliothèque standard C++ Dinkumware. Elle est fermée.

Cependant, vous pouvez toujours consulter le code source des en-têtes en ouvrant le répertoire include de votre bibliothèque standard C++ . Les fichiers sont nommés exactement comme vous les incluez. Une grande partie est implémentée dans les en-têtes de toute façon. Mais pour un œil non averti, ils sont pratiquement illisibles.

Mais quand il s'agit d'utiliser la bibliothèque C++, ne dépendez pas du code source exact, mais plutôt de ce que dit le standard C++. Ne programmez pas pour une implémentation, mais plutôt pour le standard.

2voto

chrisaycock Points 12900

Exécutez cette commande à partir de votre ligne de commande :

find /usr -name iostream

Cela vous indiquera le répertoire que vous voulez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X