std::basic_string_view<CharT,Traits>:: data
|
constexpr
const_pointer data
(
)
const
noexcept
;
|
(depuis C++17) | |
Retourne un pointeur vers le tableau de caractères sous-jacent. Le pointeur est tel que la plage
[
data
(
)
,
data
(
)
+
size
(
)
)
est valide et les valeurs qu'elle contient correspondent aux valeurs de la vue.
Table des matières |
Paramètres
(aucun)
Valeur de retour
Un pointeur vers le tableau de caractères sous-jacent.
Complexité
Constante.
Notes
Contrairement à
std::basic_string::data()
et aux littéraux de chaîne,
std::basic_string_view::data()
retourne un pointeur vers un tampon qui n'est pas nécessairement terminé par un caractère nul, par exemple une vue de sous-chaîne (comme depuis
remove_suffix
). Par conséquent, il est généralement erroné de passer
data()
à une routine qui accepte uniquement un
const
CharT
*
et s'attend à une chaîne terminée par un caractère nul.
Exemple
#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 : le tableau de caractères sous-jacent est terminé par un caractère nul char array[3] = {'B', 'a', 'r'}; std::string_view array_v(array, sizeof array); // std::cout << std::strlen(array_v.data()) << '\n'; // erreur : le tableau de caractères sous-jacent n'est pas terminé par un caractère nul std::string str(array_v.data(), array_v.size()); // OK std::cout << std::strlen(str.data()) << '\n'; // OK : le tableau de caractères sous-jacent d'un std::string est toujours terminé par un caractère nul }
Sortie :
5 3
Voir aussi
|
accède au premier caractère
(fonction membre publique) |
|
|
accède au dernier caractère
(fonction membre publique) |
|
|
retourne un pointeur vers le premier caractère d'une chaîne
(fonction membre publique de
std::basic_string<CharT,Traits,Allocator>
)
|