W3cubDocs

/C++

std::basic_string_view::basic_string_view

constexpr basic_string_view();
(1) (since C++17)
constexpr basic_string_view(const basic_string_view& other) = default;
(2) (since C++17)
constexpr basic_string_view(const CharT* s, size_type count);
(3) (since C++17)
constexpr basic_string_view(const CharT* s);
(4) (since C++17)
1) Default constructor. Constructs an empty basic_string_view.
2) Copy constructor. Constructs a view of the same content as other.
3) Constructs a view of the first count characters of the character array starting with the element pointed by s. s can contain null characters. The behavior is undefined if [s, s+count) is not a valid range (even though the constructor may not access any of the elements of this range)
4) Constructs a view of the null-terminated character string pointed to by s, not including the terminating null character. The length of the view is determined as if by Traits::length(s). The behavior is undefined if [s, s+Traits::length(s)) is not a valid range (even though the constructor may not access any of the elements of this range)

Parameters

other - another view to initialize the view with
s - pointer to a character array or a C string to initialize the view with
count - number of characters to include in the view

Exceptions

1-3)
noexcept specification:
noexcept

Complexity

(1-3) constant.

(4) linear in length of s.

Notes

Because std::char_traits::length is not constexpr (pending LWG 2232), the overload (4) cannot be used to initialize a constexpr std::string_view (or any other basic_string_view with default traits):

constexpr std::string_view sv{"abc"}; // error
constexpr std::string_view sv{"abc", 3}; // OK

Example

#include <iostream>
#include <string_view>
int main()
{
    std::wstring_view wcstr_v = L"xyzzy";
 
    char array[3] = {'B', 'a', 'r'};
    std::string_view array_v(array, sizeof array);
 
    std::string cppstr = "Foo";
    std::string_view cppstr_v(&cppstr[0], cppstr.size()); 
 
    std::cout << cppstr_v << '\n'
              << array_v << '\n'
              << wcstr_v.size() << '\n';
}

Output:

Foo
Bar
5

See also

assigns a view
(public member function)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/string/basic_string_view/basic_string_view