N3069 string_view: a non-owning reference to a string, revision 3
Boost 1.53.0で入ったstring_refと同じく、所有権を持たない文字列クラスの提案。
このクラスは、char配列に対してsubstr()やfind()といったメンバ関数を、stringへの変換コストなしに呼び出すのに使用できます。
const char s[] = "Hello World"; // char配列の部分文字列を取得 string_view view = string_view(s).substr(6, 5); for_each(view.begin(), view.end(), [](char c) { cout << c; }); // 「World」が出力される
string_viewはbasic_string_view型のtypedefとして定義されます。
basic_string_viewは基本的にbasic_stringと同じインタフェースを持っていますが、先頭/末尾文字列の判定/削除のためのremove_prefix()、remove_suffix()、start_with()、ends_with()メンバ関数が追加されています。