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()
メンバ関数が追加されています。