Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for a snapshot of the master branch, built from commit d4f4f87d35.
PrevUpHomeNext
segments_encoded_ref::insert (2 of 3 overloads)

Insert segments.

Synopsis
iterator
insert(
    iterator before,
    std::initializer_list< pct_string_view > 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.

Remarks

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
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

Type

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.


PrevUpHomeNext