std::basic_string<CharT,Traits,Allocator>::assign_range - cppreference.com

From cppreference.com

template<container-compatible-range<CharT>R>constexprstd::basic_string&assign_range(R&&rg);(since C++23)Replaces the contents of the string with the values in the range rg.

Equivalent to

returnassign(std::basic_string(std::from_range,std​::​forward<R>(rg),get_allocator()));Parameters

Return value

*this

Complexity

Linear in size of rg.

Exceptions

If the operation would cause

size()

to exceed

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

macroValueStdFeature

__cpp_lib_containers_ranges

202202L

(C++23)member functions that accept

container compatible range

Example

Run this code

#include<cassert>#include<string>intmain(){constautosource={'s','o','u','r','c','e'};std::stringdestination{"destination"};#ifdef __cpp_lib_containers_rangesdestination.assign_range(source);#elsedestination.assign(source.begin(),source.end());#endifassert(destination=="source");}See also