Funnily đủ đúng bây giờ tôi đang ở hội nghị ACCU với Marshall Clow (lực lượng đằng sau string_view et al trên ủy ban) và tôi đã khá nghĩa đen về để hỏi anh ta tại quầy bar trước ngày hôm nay trước khi tôi được gọi đi về quan điểm của mình trên string_view so với Bjarn Thư viện hỗ trợ hướng dẫn của e (GSL) gsl::span<T>
là một điều rất giống nhau (gsl-lite là việc triển khai yêu thích cá nhân của GSL vì nó tương thích với 03, nhưng có nhiều thứ khác). Tôi đã nghe nói rằng họ đã được thống nhất thành một thực hiện duy nhất cho tiêu chuẩn hóa, và hướng gsl::span<T>
là tương lai, nhưng tôi sẽ báo cáo lại từ miệng ngựa nếu tôi sai về điều đó. Hiện tại, giả định hướng gsl::span<T>
là tương lai hiện tại và Boost sẽ được cập nhật để sớm có một cái gì đó tương tự, ngay cả khi using string_view = gsl::span<char>
về cơ bản là string_view.
Chỉnh sửa: Tôi vừa nói chuyện với Marshall ở tầng dưới. Ông nói với tôi rằng string_view, theo thực hiện trong Tăng cường, chắc chắn là trong C++ 17. array_view không phải là, cũng không phải là bất cứ điều gì lịch sử xung quanh string_view cho bây giờ.
GSL string_span là một thực thể riêng biệt không được dự kiến nhập vào C++ 17, cũng không có kế hoạch hiện tại để thống nhất các triển khai khi chúng giải quyết các trường hợp sử dụng khác nhau, cụ thể là string_view luôn là dạng xem liên tục của mảng ký tự được vay, trong khi string_span được mong đợi là một khung nhìn có khả năng sửa đổi của mảng ký tự được mượn với các sử dụng tiềm năng làm nguồn để xây dựng chuỗi mới, vì vậy string_span có lẽ cuối cùng trở thành sự tổng quát của string_view trong một số tiêu chuẩn C++ trong tương lai.
Nguồn
2016-04-19 21:51:27
FYI cập nhật cuối cùng từ ủy ban về string_view, array_view và span là vào tháng 2 và được trình bày chi tiết tại http://stackoverflow.com/a/36207785/805579 –