在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.
但是没有定义“有效范围”是什么。如果使用指向非拥有内存的指针构造string_view
,它是否是未定义的行为?
此外,是否要求string_view
总是指向拥有内存的整个生命周期,还是只适用于构造函数?
如果是这样,这个决定的理由是什么?