I know that in C++98, neither std::basic_string<> nor std::vector<> were required to use contiguous storage. This was seen as an oversi
std::basic_string<>
std::vector<>
According to the draft standard N4527 21.4/3 Class template basic_string [basic.string] :
A basic_string is a contiguous container (23.2.1).