Scroll to navigation

std::basic_string::assign_range(3) C++ Standard Libary std::basic_string::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)

2024.06.10 http://cppreference.com