Ich suche nach dem Code für die C++ - String-Klasse. In welchem Header ist es implementiert?Wo finde ich die Implementierung für std :: string
Antwort
Es gibt keine einzelne Implementierung für std::string
. Aber Sie können Ihre spezielle Implementierung in der <string>
Header finden.
Auf meinem System kann es hier zu finden:
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.0/include/g++-v4/bits/basic_string.h
und /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.0/include/g++-v4/bits/basic_string.tcc
Auf einem Debian-basiertes System:
~$ locate basic_string.tcc
/usr/include/c++/4.5/bits/basic_string.tcc
/usr/include/c++/4.6/bits/basic_string.tcc
~$ locate basic_string.h
/usr/include/c++/4.5/bits/basic_string.h
/usr/include/c++/4.6/bits/basic_string.h
~$
Im Allgemeinen Sie gehen zu suchen für die basic_string
Vorlage , da std::string
nur eine Spezialisierung davon ist.
Wie zu erwarten,
<string>
, die höchstwahrscheinlich in lokalisiert werden, was auch immer include
Verzeichnis des Compilers als seine Basis hat.
Sie haben natürlich Recht, aber bedenken Sie, dass (IIRC) '
Es ist keine Datei auf VMS; Header-Dateien sind in "Text-Bibliotheken" enthalten, was auch immer sie sind. Warum, ich habe keine Ahnung. –
Es ist in <string>
. Es ist eine Header-Datei, die mit Ihrem Compiler verteilt wird. Es kann andere (private) Header-Dateien enthalten - ein Großteil der Implementierung für Visual Studio befindet sich in einer Datei namens "xstring".
Eine ähnliche Frage mit der Antwort für Visual Studio: https://stackoverflow.com/a/17205896/5520058
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\crt\src\
Die Version und der Lage von Visual Studio geändert werden können. Dies ist der Standardinstallationspfad, in dem die Quellen gefunden werden können.
Visual Studio Versionen:
- 2005 -> 8
- 2008 -> 9
- 2010 -> 10
- 2012 -> 11
- 2013 -> 12
- 2015 -> 14
- 1. Wo finde ich die schnellste atof-Implementierung der Welt?
- 2. Wo finde ich die Quelle für System.Web.Optimization?
- 3. Wo finde ich die Keymap für Linux?
- 4. Wo finde ich eine Implementierung von Java EL 3.0?
- 5. Wo finde ich eine effiziente R-Tree-Implementierung?
- 6. Wo finde ich eine Java-Implementierung eines ISO-Schematron-Validators?
- 7. std :: string vs std :: string für viele Strings
- 8. Wo finde ich "j_security_check"?
- 9. Wo finde ich ninject.web.mvc.dll?
- 10. Wo finde ich Microsoft.VisualStudio.DebuggerVisualiser?
- 11. Wo finde ich ipseccmd.exe?
- 12. Wo finde ich TableDiff.exe?
- 13. Wo finde ich die PyBluez API
- 14. Wo finde ich CabWiz.exe
- 15. Wo finde ich die Datei sqljdbc_xa.dll?
- 16. Wo finde ich config.vm.boot_timeout?
- 17. Wo finde ich ESAPI.properties?
- 18. Wo finde ich GladeGen?
- 19. Wo finde ich Protagonisten?
- 20. Wo finde ich Tutorials für Clang?
- 21. Wo finde ich klare Beispiele für MVC?
- 22. Wo finde ich Quellcode für Windows-Befehle?
- 23. Wo finde ich * neuere * Glyphen für TBitBtn?
- 24. Wo finde ich cordova.js?
- 25. Wo finde ich weitere Themen für VS2012?
- 26. Wo finde ich mysql.data.dll für C#
- 27. Wo finde ich Dokumentation für RDLC XML?
- 28. Wo finde ich eine Konfigurationsdatei für SourceInsight?
- 29. Wo finde ich Dokumentation für npm-Pakete?
- 30. wo finde ich die Quelle in openjdk
Vielen Dank. Es erscheint nur der Prototyp der Methode, nach der ich gesucht habe: find() ist da drin "size_type find (const _CharT * __s, size_type __pos, size_type __n) const;" – Alan
ahhh Entschuldigung. Ich habe es in basic_string.tcc gefunden. Vielen Dank! – Alan
GCC-Implementierung ist hier: https://gcc.gnu.org/onlinedocs/gcc-4.8.1/libstdc++/api/a01053_source.htm –