Вы можете поместить определение std::string
в локальный заголовок (это все, что находится в каталоге вашего проекта).
В любом случае, это нелегкая работа, особенно для такого класса шаблонов, как std::string
: так как это шаблон, ему понадобится полное объявление, и ваша программа во время выполнения будет использовать std::string
, как объявлено Ваш заголовок.
Кроме того, различные реализации STL могут реализовывать std::string
по-разному, хотя интерфейс должен быть одинаковым.
Итак, краткий ответ: нет, используйте системные заголовки.