В Расширения C ++ для основ библиотеки, версия 2, заявлено, что для string_view
конструктор:
constexpr basic_string_view(const charT* str, size_type len);
Requires: [str,str + len) is a valid range.
Но не определено, что такое «допустимый диапазон». Это неопределенное поведение, если string_view
построен с указателем на не принадлежащую память?
Кроме того, требуется ли, чтобы string_view
всегда указывают на принадлежащую память в течение всего времени ее существования, или это относится только к конструктору?
Если да, то каково обоснование этого решения?
Задача ещё не решена.
Других решений пока нет …