Я знаю, что в С++ 98 не требуется std::basic_string<>
и std::vector<>
для использования непрерывного хранилища. Это было замечено как надзор за std::vector<>
, как только это было указано, и, если я правильно помню, исправлено с С++ 03.
Кажется, я помню, что прочитал о дискуссиях, требующих, чтобы std::basic_string<>
использовал непрерывное хранилище, когда С++ 11 все еще назывался С++ 0x, но я не стал внимательно следить за этим обсуждением, и я все еще ограничен С++ 03 на работе, поэтому я не уверен, что с ним стало.
Значит, std::basic_string<>
требуется использовать непрерывное хранилище? (Если это так, то какая версия стандарта требовала его сначала?)
В случае, если вы задаетесь вопросом: это важно, если у вас есть код, передающий результат &str[0]
функции, ожидающей непрерывной записи памяти. (Я знаю о str.data()
, но по очевидным причинам старый код не использует его.)