Namespaces
Variants

std::basic_string_view<CharT,Traits>:: data

From cppreference.net
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> )