Espacios de nombres
Variantes

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

De cppreference.com
 
 
 
 
<tbody> </tbody>
constexpr basic_string_view() noexcept;
(1) (desde C++17)
constexpr basic_string_view(const basic_string_view& other) noexcept = default;
(2) (desde C++17)
constexpr basic_string_view(const CharT* s, size_type count);
(3) (desde C++17)
constexpr basic_string_view(const CharT* s);
(4) (desde C++17)
template<typename It, typename End> constexpr basic_string_view(It first, End last);
(5) (desde C++20)
1) Constructor por defecto. Construye una vista sobre cadena vacía (basic_string_view). Después de la construcción, data() es igual a nullptr, y size() es igual a 0.
2) Constructor de copia. Construye una vista sobre cadena con el mismo contenido que other. Después de la construcción, data() es igual a other.data(), y size() es igual a other.size().
3) Construye una vista sobre cadena de los primeros count caracteres del array de caracteres iniciando con el elemento al que apunta s. s puede contener caracteres nulos. El comportamiento es indefinido si [s, s+count) no es un rango válido (aun cuando el constructor no pueda acceder a ninguno de los elementos de este rango). Después de la construcción, data() es igual a s, and size() es igual a count.
4) Construye una vista sobre cadena a partir de la cadena terminada en nulo a la que apunta s, no incluyendo el caracter terminador nulo. La longitud de la vista se determina como si fuera mediante Traits::length(s). El comportamiento es indefinido si [s, s+Traits::length(s)) no es un rango válido. Después de la construcción, data() es igual a s, y size() es igual a Traits::length(s).
5) Construye una vista sobre cadena (basic_string_view) sobre el rango [first, last). El comportamiento es indefinido si [first, last) no es un rango válido, si It en realidad no modela a contiguous_iterator, o si End en realidad no modela a sized_sentinel_for para It. Después de la construcción, data() es igual a std::to_address(first), y size() es igual a last - first.

Esta sobrecarga solo participa en la resolución de sobrecargas si

Parámetros

other - Otra vista con la cual inicializar la vista sobre cadena.
s - Puntero a un array de caracteres o a una cadena estilo C con la cual inicializar la vista sobre cadena.
count - El número de caracteres a incluir en la vista sobre cadena.
first - Iterador al primer carácter de la secuencia.
last - Iterador al último carácter de la secuencia más uno u otro centinela.

Complejidad

1-3,5) Constante.
4) Lineal en la longitud de s.

Ejemplo

#include <iostream>
#include <string>
#include <string_view>
int main()
{
    std::wstring_view wcstr_v = L"xyzzy";

    char array[3] = {'B', 'a', 'r'};
    std::string_view array_v(array, std::size(array));

    std::string cppstr = "Foo";
    std::string_view cppstr_v(cppstr); 

    std::cout << cppstr_v << '\n'
              << array_v << '\n'
              << wcstr_v.size() << '\n';
}

Salida:

Foo
Bar
5

Véase también

Asigna una vista.
(función miembro pública) [editar]