std::basic_string_view<CharT,Traits>:: data
|
constexpr
const_pointer data
(
)
const
noexcept
;
|
(seit C++17) | |
Gibt einen Zeiger auf das zugrundeliegende Zeichenarray zurück. Der Zeiger ist so beschaffen, dass der Bereich
[
data
(
)
,
data
(
)
+
size
(
)
)
gültig ist und die darin enthaltenen Werte den Werten der Ansicht entsprechen.
Inhaltsverzeichnis |
Parameter
(keine)
Rückgabewert
Ein Zeiger auf das zugrundeliegende Zeichenarray.
Komplexität
Konstante.
Hinweise
Im Gegensatz zu
std::basic_string::data()
und String-Literalen gibt
std::basic_string_view::data()
einen Zeiger auf einen Puffer zurück, der nicht notwendigerweise nullterminiert ist, beispielsweise bei einer Teilstring-Ansicht (z.B. von
remove_suffix
). Daher ist es typischerweise ein Fehler,
data()
an eine Routine zu übergeben, die lediglich einen
const
CharT
*
erwartet und eine nullterminierte Zeichenkette voraussetzt.
Beispiel
#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: das zugrundeliegende Zeichenarray ist nullterminiert char array[3] = {'B', 'a', 'r'}; std::string_view array_v(array, sizeof array); // std::cout << std::strlen(array_v.data()) << '\n'; // Fehler: das zugrundeliegende Zeichenarray ist nicht nullterminiert std::string str(array_v.data(), array_v.size()); // OK std::cout << std::strlen(str.data()) << '\n'; // OK: das zugrundeliegende Zeichenarray eines std::string ist immer nullterminiert }
Ausgabe:
5 3
Siehe auch
|
greift auf das erste Zeichen zu
(öffentliche Elementfunktion) |
|
|
greift auf das letzte Zeichen zu
(öffentliche Elementfunktion) |
|
|
gibt einen Zeiger auf das erste Zeichen einer Zeichenkette zurück
(öffentliche Elementfunktion von
std::basic_string<CharT,Traits,Allocator>
)
|