Tôi chỉ cần chạy vào một số hiểu lầm: ít nhất là trong libC++ thực hiện std :: nghiệm :: string_view có việc thực hiện ngắn gọn như sau:string_view hành vi khi đi qua std :: string tạm
template <class _CharT, class _Traits....>
class basic_string_view {
public:
typedef _CharT value_type;
...
template <class _Allocator>
basic_string_view(const basic_string<_CharT, _Traits, _Allocator>& str):
__data(str.data()), __size(str.size())
{
}
private:
const value_type* __data;
size_type __size;
};
Liệu thực hiện này ngụ ý rằng nếu chúng ta chuyển biểu thức rvalue cho hàm tạo này, chúng ta sẽ nhận được hành vi không xác định khi sử dụng __data sau khi xây dựng?
Yeah. 'String_view' chỉ là tham chiếu được tôn vinh. – Rapptz
[Xem thêm] (http://stackoverflow.com/q/20803826/596781). –