Это вариант но не хорошо так делать в std::string нету виртуального деструкора и код базе есть места где используется указатель на std::string так что хочется по дальше от греха
Вообще плохо наследоваться от std контейнеров. Не понимаю почему они до сих пор не final