##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::basic_string_view::basic_string_view

From cppreference.com
< cpp‎ | string‎ | 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`. After construction, data() is equal to `nullptr`, and size() is equal to `0`.
2) Copy constructor. Constructs a view of the same content as `other`. After construction, data() is equal to `other.data()`, and size() is equal to `other.size()`.
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). After construction, data() is equal to `s`, and size() is equal to `count`.
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. After construction, data() is equal to `s`, and size() is equal to `Traits::length(s)`.

### [edit] 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

### [edit] Exceptions

1-3)
`noexcept` specification:
noexcept

### [edit] Complexity

1-3) constant
4) linear in length of `s`

### [edit] Example

Run this code

    #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, 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

### [edit] See also

operator= | assigns a view (public member function) [edit]

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/string/basic_string_view/basic_string_view&oldid=91480"
Category:

- unconditionally noexcept

Hidden categories:

- Pages with unreviewed unconditional noexcept template
- Pages with unreviewed noexcept template