std::basic_string_view<CharT,Traits>:: data
|
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)
|