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

NAME
     std::basic_string::assign_range - std::basic_string::assign_range

Synopsis
	template< container-compatible-range<CharT> R >       (since C++23)
	constexpr std::basic_string& assign_range( R&& rg );

	Replaces the contents of the string with the values in the range rg.

	Equivalent to

      return assign(
	  std::basic_string(
	      std::from_range,
	      std::forward<R>(rg),
	      get_allocator())
      );

Parameters
	rg - a container compatible range

Return value
	*this

Complexity
	Linear in size of rg.

Exceptions
	If   the   operation   would  result  in  size()  >  max_size(),  throws
     std::length_error.

	If an exception is thrown for any reason, this function  has  no  effect
     (strong
	exception safety guarantee).

Notes
	    Feature-test macro	     Value    Std		    Feature
	__cpp_lib_containers_ranges 202202L (C++23) member functions that accept
     container
						    compatible range

Example
     // Run this code

      #include <cassert>
      #include <string>

      int main()
      {
	  const auto source = {'s', 'o', 'u', 'r', 'c', 'e'};
	  std::string destination{"destination"};

      #ifdef __cpp_lib_containers_ranges
	  destination.assign_range(source);
      #else
	  destination.assign(source.begin(), source.end());
      #endif

	  assert(destination == "source");
      }

See also
	assign	      assign characters to a string
		      (public member function)
	operator=     assigns values to the string
		      (public member function)
	constructor   constructs a basic_string
		      (public member function)

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

home | help