std::experimental::basic_string_view<CharT,Traits>::basic_string_view (3) - Linux Manuals

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

NAME

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

Synopsis


constexpr basic_string_view() noexcept; (1) (library fundamentals TS)
constexpr basic_string_view(const basic_string_view& other) noexcept = default; (2) (library fundamentals TS)
template<class Allocator> (3) (library fundamentals TS)
basic_string_view(const std::basic_string<CharT, Traits, Allocator>& str) noexcept;
constexpr basic_string_view(const CharT* s, size_type count); (4) (library fundamentals TS)
constexpr basic_string_view(const CharT* s); (5) (library fundamentals TS)


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 str.size() characters of the character array starting with the element pointed by str.data().
4) 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)
5) 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
str - a C++ string object to initialize 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


4-5) (none)

Complexity


1-4) constant
5) linear in length of s

Example


// Run this code


  #include <iostream>
  #include <experimental/string_view>
  int main()
  {
      std::string cppstr = "Foo";
      char array[3] = {'B', 'a', 'r'};


      std::experimental::string_view cppstr_v(cppstr);
      std::experimental::string_view array_v(array, sizeof array);


      std::experimental::wstring_view wcstr_v = L"xyzzy";


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

Output:


  Foo
  Bar
  5

See also


          assigns a view
operator= (public member function)