| Home | Libraries | People | FAQ | More

###### segments_encoded_ref::assign (2 of 2 overloads)

Assign segments.

###### Synopsis

    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. Escapes in the range are preserved.

All iterators are invalidated.

###### Remarks

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

    std::is_convertible< std::iterator_traits< FwdIt >::reference_type, pct_string_view >::value == true

###### Complexity

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

###### Exception Safety

Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input.

###### Exceptions

Type | Thrown On
--- | ---
`system_error` | The range contains an invalid percent-encoding.

###### Parameters

Name | Description
--- | ---
`first`, `last` | The range of segments to assign.