Посмотрите на заголовок <string>
и посмотрите авторские права? Я добавлю, что, насколько я знаю, std::string
- это typedef, равный basic_string<>
, то есть шаблонного класса. Теперь, насколько я помню, только Comeau C ++ поддерживает шаблоны экспорта, поэтому все другие компиляторы должны иметь классы шаблонов, определенные И реализованные в заголовочных файлах. Вы используете GCC, поэтому, вероятно, в заголовке <string>
вы найдете большую часть реализации строки. (Я добавлю, что это обычная уловка - создавать шаблон "shim" / "proxy", который вызывает не-шаблонные классы для минимизации размера компиляции, поэтому не вся реализация должна быть в заголовочном файле, и что для конкретный случай std::string
многих методов МОЖЕТ быть определен поверх библиотеки «string» C (но, вероятно, не будет, потому что std::string
считает null
допустимым символом)