В C++98
и C++03
std::string
мог быть сохранен он подрывая данные в несмежной памяти. В чем причина этого? Какая возможная оптимизация могла быть достигнута благодаря этому расслабленному требованию? Использовал ли какой-либо компилятор/архитектура?
Если у вас есть части строки, хранящиеся в разных ячейках памяти, не будет ли слишком сложным итератор? И класс тоже, так как ему нужно точно знать, где находятся разные части строки.