Это только когда-то будет спекуляцией, но общее мнение, как представляется, заключается в том, что эти операции будут неясными.
Лично я думаю, что "очистка представления" имеет смысл (и давайте также не будем забывать)что remove_prefix
и remove_suffix
существуют! Хотя см. ниже ...), но я также согласен с тем, что существуют и другие распространенные толкования, которые имеют меньший смысл.Напомним, что string_view
предназначен для дополнения const std::string&
, а не std::string
, и ни одна из названных вами функций не является частью постоянного интерфейса std::string
.
Если честно, тот факт, чтонам этот разговор вообще нужен, сам по себе, вероятно, является хорошей причиной, чтобы вообще не иметь этой функции.
С окончательное предложение по string_view
, следующий отрывокне о assign
или clear
конкретно, но действует как уместное представление [смеется] в умах комитета по этому вопросу:
s/remove_prefix/pop_front/, etc.
В Kona 2012 я предложил класс range<>
с элементами pop_front
и т. Д., Которые скорректировали границы диапазона.Дискуссия там показала, что членам комитета было неудобно использовать те же имена для операций с малой дальностью, что и для контейнерных операций .Существующая практика не согласовывает название для этой операции, поэтому я сохранил имя, используемое Google StringPiece
.
Это предложение действительно включало clear()
, что было бесцеремонновычеркнул из реестра в более позднем, изолированном, обоснованном голодном предложении .
Теперь можно утверждать, что поэтому функции могли быть предоставлены под разными именами, но это никогда не предлагалось,и трудно представить, какие альтернативные имена решат эту проблему, не будучи просто плохими именами для операций.
Поскольку мы можем достаточно легко назначить новый string_view
, включая пустой, вся проблема решаетсяпросто не удосужившись заняться этим.