std::basic_string_view<CharT,Traits>::data
ja.cppreference.net から提供
constexpr const_pointer data() const noexcept;
|
(C++17以降) | |
基になる文字配列へのポインタを返します。このポインタは、範囲 [data(), data() + size()) が有効であり、その中の値がビューの値に対応することを保証します。
パラメータ
(なし)
戻り値
基となる文字配列へのポインタ。
計算量
定数。
注記
std::basic_string::data()
や文字列リテラルとは異なり、
std::basic_string_view::data()
は必ずしもnull終端されていないバッファへのポインタを返します。例えば部分文字列ビュー(
remove_suffix
からのものなど)が該当します。したがって、
data()
を単なる
const
CharT
*
を受け取りnull終端文字列を期待するルーチンに渡すことは、一般的に誤りです。
例
このコードを実行
#include <cstring> #include <cwchar> #include <iostream> #include <string> #include <string_view> int main() { std::wstring_view wcstr_v = L"xyzzy"; std::cout << std::wcslen(wcstr_v.data()) << '\n'; // OK: 基となる文字配列はnull終端されている char array[3] = {'B', 'a', 'r'}; std::string_view array_v(array, sizeof array); // std::cout << std::strlen(array_v.data()) << '\n'; // エラー: 基となる文字配列はnull終端されていない std::string str(array_v.data(), array_v.size()); // OK std::cout << std::strlen(str.data()) << '\n'; // OK: std::stringの基となる文字配列は常にnull終端されている }
出力:
5 3
関連項目
|
最初の文字にアクセスする
(public member function) |
|
|
最後の文字にアクセスする
(public member function) |
|
|
文字列の最初の文字へのポインタを返す
( std::basic_string<CharT,Traits,Allocator>のpublic member function)
|