2010-07-03 18 views

Respuesta

15

No hay una implementación única para std::string. Pero puede encontrar su implementación particular en el encabezado <string>.

En mi sistema se puede encontrar aquí:

/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.0/include/g++-v4/bits/basic_string.h y /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.0/include/g++-v4/bits/basic_string.tcc

En un sistema basado en Debian:

~$ 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 
~$ 

Por lo general, van a estar buscando la plantilla basic_string , ya que std::string es solo una especialización de eso.

+0

Gracias. Aparece solo el prototipo del método que estaba buscando: find() es allí "tamaño_tipo find (const _CharT * __s, size_type __pos, size_type __n) const;" – Alan

+0

ahhh lo siento. Lo he encontrado en basic_string.tcc. ¡Gracias! – Alan

+0

la implementación de gcc está aquí: https://gcc.gnu.org/onlinedocs/gcc-4.8.1/libstdc++/api/a01053_source.htm –

0

Como era de esperar,

<string> 

que lo más probable es que se encuentra en cualquier include directorio de su compilador tiene como su base.

+2

tiene razón, pero tenga en cuenta que (IIRC) '' doesn en realidad tiene que ser un archivo real. Nunca vi una implementación donde no fue ... –

+0

No es un archivo en VMS; los archivos de encabezado están contenidos en 'librerías de texto', sean lo que sean. Por qué, no tengo idea. –

0

Está en <string>. Es un archivo de cabecera distribuido con tu compilador. Puede incluir otros archivos de encabezado (privados): gran parte de la implementación de Visual Studio se encuentra en un archivo llamado "xstring".

0

Una pregunta similar con la respuesta para Visual Studio: https://stackoverflow.com/a/17205896/5520058

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\crt\src\ 

La versión y la ubicación de Visual Studio se pueden cambiar. Esta es la ruta de instalación predeterminada donde se pueden encontrar las fuentes.

versiones de Visual Studio:

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