23.3 String view classes [string.view]
編集23.3.1 General [string.view.general]
編集- 基本概要
- クラステンプレート
basic_string_view
は、位置0に最初の要素を持つ、charのような(23.1で定義される)オブジェクトの連続する定数シーケンスを参照できるオブジェクトを記述します。23.3の残りの部分では、basic_string_view
オブジェクトに保持されるcharのようなオブジェクトの型をcharT
とします。
- クラステンプレート
- 注意事項
- ライブラリは、
const charT*
およびstd::basic_string<charT, ...>
からstd::basic_string_view<charT, ...>
への暗黙の変換を提供しており、ユーザーコードが文字のシーケンスを期待する場所でテンプレート化されていないパラメータとしてstd::basic_string_view<charT>
のみを受け入れることができます。ユーザー定義の型は、自分自身の暗黙の変換をstd::basic_string_view<charT>
に定義して、これらの関数と相互運用することができます。 - このことにより、
basic_string_view
は、文字列を受け入れる多くの関数で柔軟に使用できるようになり、std::string
オブジェクトやCスタイルの文字列リテラルを簡単に渡すことができます。
- ライブラリは、
23.3.2 Header <string_view> synopsis [string.view.synop]
編集<string_view>
ヘッダーには、以下のような内容が含まれています。
namespace std { // 23.3.3, class template basic_string_view template<class charT, class traits = char_traits<charT>> class basic_string_view; // 23.3.7, typedef names for common character types using string_view = basic_string_view<char>; using u16string_view = basic_string_view<char16_t>; using u32string_view = basic_string_view<char32_t>; using wstring_view = basic_string_view<wchar_t>; // 23.3.8, erase and erase_if template<class charT, class traits> constexpr basic_string_view<charT, traits> erase( basic_string_view<charT, traits> sv, charT c ); template<class charT, class traits, class UnaryPredicate> constexpr basic_string_view<charT, traits> erase_if( basic_string_view<charT, traits> sv, UnaryPredicate p ); }
basic_string_view
- このテンプレートクラスは、charのようなオブジェクトの連続するシーケンスを参照するためのもので、指定された
charT
型とtraits
を使用します。 - 通常の文字型のための型エイリアス
-
string_view
char
型の基本的なstring_view
です。u16string_view
char16_t
型の基本的なstring_view
です。u32string_view
char32_t
型の基本的なstring_view
です。wstring_view
wchar_t
型の基本的なstring_view
です。
erase
とerase_if
-
erase
- 特定の文字を削除するための関数です。
erase_if
- 条件に一致する文字を削除するための関数です。
このように、<string_view>
ヘッダーは、文字列の読み取り専用のビューを提供し、std::string
やCスタイルの文字列と相互運用性を持つ軽量な方法を提供します。これにより、コピーを作成せずに文字列を効率的に操作することができます。