:relfileprefix: ../../../ [#boost-urls-segments_encoded_ref-insert-0d] = xref:boost.adoc[pass:[boost]]::xref:boost/urls.adoc[pass:[urls]]::xref:boost/urls/segments_encoded_ref.adoc[pass:[segments_encoded_ref]]::insert Insert segments == Synopsis Declared in header `` [source,cpp,subs="verbatim,macros,-callouts"] ---- xref:boost/urls/segments_encoded_base/iterator.adoc[iterator] insert( xref:boost/urls/segments_encoded_base/iterator.adoc[iterator] before, xref:std.adoc[std]::initializer_list init); ---- == Description This function inserts the segments in an initializer list before the specified position. Reserved characters in the list are automatically escaped. Escapes in the list are preserved. All iterators that are equal to `before` or come after are invalidated. [NOTE] None of the character buffers referenced by the list may overlap the character buffer of the underlying url, or else the behavior is undefined. === Example [,cpp] ---- url u( "/file.txt" ); u.encoded_segments().insert( u.encoded_segments().begin(), { "path", "to" } ); ---- === Complexity Linear in `init.size() + this->url().encoded_resource().size()`. === Exception Safety Strong guarantee. Calls to allocate may throw. Exceptions thrown on invalid input. == Exceptions |=== | Name | Thrown on | `system_error` | The list contains an invalid percent-encoding. |=== == Return Value An iterator to the first element inserted, or `before` if `init.size() == 0`. == Parameters |=== | Name | Description | *before* | An iterator before which the list is inserted. This may be equal to `end()`. | *init* | The list of segments to insert. |===