:relfileprefix: ../../../
[#boost-urls-segments_ref-assign-0d]

= xref:boost.adoc[pass:[boost]]::xref:boost/urls.adoc[pass:[urls]]::xref:boost/urls/segments_ref.adoc[pass:[segments_ref]]::assign


Assign segments


== Synopsis

Declared in header `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/segments_ref.hpp#L344[boost/url/segments_ref.hpp,window=blank_]>`

[source,cpp,subs="verbatim,macros,-callouts"]
----
template<class FwdIt>
void
assign(
    FwdIt first,
    FwdIt last);
----

== Description


The existing contents are replaced
by a copy of the contents of the range.
Reserved characters in the range are
automatically escaped.



All iterators are invalidated.
[NOTE]

None of the character buffers referenced
by the range may overlap the character
buffer of the underlying url, or else
the behavior is undefined.

=== Mandates
[,cpp]
----
std::is_convertible< std::iterator_traits< FwdIt >::reference_type, core::string_view >::value == true
----

=== Complexity

Linear in `std::distance( first, last ) + this-&gt;url().encoded_query().size() + this-&gt;url().encoded_fragment().size()`.

=== Exception Safety

Strong guarantee.
Calls to allocate may throw.





== Parameters

|===
| Name | Description 

| *first,*
| 
last The range of segments
to assign.

|===




