home | help
std::basic_..._view::copy(3)   C++ Standard Libary  std::basic_..._view::copy(3)

NAME
     std::basic_string_view::copy - std::basic_string_view::copy

Synopsis
	size_type  copy(  CharT*  dest,  size_type  count, size_type pos  (since
     C++17)
	= 0 ) const;						      (constexpr
     since C++20)

	Copies	the substring [pos, pos + rcount) to the character array pointed
     to by dest,
	where rcount is the smaller of count and size() - pos.

	Equivalent to Traits::copy(dest, data() + pos, rcount).

Parameters
	dest  - pointer to the destination character string
	count - requested substring length
	pos   - position of the first character

Return value
	Number of characters copied.

Exceptions
	std::out_of_range if pos > size().

Complexity
	Linear in rcount.

Example
     // Run this code

      #include <array>
      #include <cstddef>
      #include <iostream>
      #include <stdexcept>
      #include <string_view>

      int main()
      {
	  constexpr std::basic_string_view<char> source{"ABCDEF"};
	  std::array<char, 8> dest;
	  std::size_t count{}, pos{};

	  dest.fill('\0');
	  source.copy(dest.data(), count = 4); // pos = 0
	  std::cout << dest.data() << '\n'; // ABCD

	  dest.fill('\0');
	  source.copy(dest.data(), count = 4, pos = 1);
	  std::cout << dest.data() << '\n'; // BCDE

	  dest.fill('\0');
	  source.copy(dest.data(), count = 42, pos = 2); // ok, count -> 4
	  std::cout << dest.data() << '\n'; // CDEF

	  try
	  {
	      source.copy(dest.data(), count = 1, pos = 666); // throws:  pos  >
     size()
	  }
	  catch (std::out_of_range const& ex)
	  {
	      std::cout << ex.what() << '\n';
	  }
      }

Output:
      ABCD
      BCDE
      CDEF
      basic_string_view::copy: __pos (which is 666) > __size (which is 6)

See also
	substr	returns a substring
		(public member function)
	copy	copies characters
		(public  member function of std::basic_string<CharT,Traits,Allo-
     cator>)
	copy	copies a range of elements to a new location
	copy_if (function template)
	(C++11)
	memcpy	copies one buffer to another
		(function)

http://cppreference.com 	   2024.06.10	    std::basic_..._view::copy(3)

home | help