8
votes

Où puis-je trouver la mise en œuvre pour STD :: String

Je cherche le code de la classe C ++ String. Quel en-tête est-il implémenté?


0 commentaires

4 Réponses :


16
votes

Il n'y a pas d'implémentation unique pour std :: chaîne . Mais vous pouvez trouver votre implémentation particulière dans l'en-tête .

sur mon système, on peut trouver ici:

/ USR / LIB / GCC / x86_64-pc-linux-gnu / 4.5.0 / Inclure / g ++ - v4 / bits / basic_string.h et /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.0/ Inclure / g ++ - v4 / bits / basic_string.tcc

sur un système de Debian: xxx

Généralement, vous allez Recherchez le modèle basic_string , puisque std :: string est juste une spécialisation de cela.


3 commentaires

Merci. Il n'apparaît que le prototype de la méthode que je cherchais: trouver () est là "Taille_type Recherche (const _chart * __s, Taille_Type __pos, Taille_Type __n) const;"


ahhh désolé. Je l'ai trouvé dans basic_string.tcc. Merci!


La mise en œuvre de la GCC est ici: gcc.gnu.org/onlinedocs /gcc-4.8.1/LIBSTDC++/API/...



0
votes

Comme vous pouvez vous attendre,

<string>


2 commentaires

Vous êtes bien sûr correct, mais gardez à l'esprit que (IIRC) ne doit pas nécessairement être un fichier réel. Je n'ai jamais vu une mise en œuvre où ce n'était pas si ...


Ce n'est pas un fichier sur VMS; Les fichiers d'en-tête sont contenus dans les «bibliothèques de texte», quoi qu'ils soient. Pourquoi je n'ai aucune idée.



0
votes

C'est dans . C'est un fichier d'en-tête distribué avec votre compilateur. Il peut inclure d'autres fichiers d'en-tête (privés) - Beaucoup de mise en œuvre de Visual Studio se trouve dans un fichier nommé "Xstring".


0 commentaires

0
votes

Une question similaire avec la réponse pour Visual Studio: https://stackoverflow.com/a/17205896/5520058 xxx

la version et l'emplacement de Visual Studio peut être changé. Il s'agit du chemin d'installation par défaut dans lequel les sources peuvent être trouvées.

Versions Visual Studio Versions:

  • 2005 -> 8
  • 2008 -> 9
  • 2010 -> 10
  • 2012 -> 11
  • 2013 -> 12
  • 2015 -> 14

0 commentaires