| Home | Libraries | People | FAQ | More

###### segments_encoded_ref::replace (3 of 4 overloads)

Replace segments.

###### Synopsis

    iterator
    replace(
        iterator from,
        iterator to,
        std::initializer_list< pct_string_view > init);

###### Description

This function replaces a range of segments with a list of segments in an initializer list. Reserved characters in the list are automatically escaped. Escapes in the list are preserved.

All iterators that are equal to `from` or come after are invalidated.

###### Preconditions

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

###### Complexity

Linear in `init.size() + this->url().encoded_resouce().size()`.

###### Exception Safety

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

###### Exceptions

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

###### Return Value

An iterator to the first segment inserted, or one past `to` if `init.size() == 0`.

###### Parameters

Name | Description
--- | ---
`from`, `to` | The range of segments to replace.
`init` | The list of segments to assign.