在C++ Extensions for Library Fundamentals, Version 2中,声明对于string_view
构造函数:
constexpr basic_string_view(const charT* str, size_type len);
Requires: [str,str + len) is a valid range.
但没有定义什么是“有效范围”。如果 astring_view
是用指向非拥有内存的指针构造的,它是未定义的行为吗?
此外,是否要求 a在其整个生命周期内string_view
始终指向拥有的内存,还是仅适用于构造函数?
如果是这样,这个决定的理由是什么?