boost::urls::segments_encoded_ref::insert :: Boost Libraries Documentation

# boost::urls::segments_encoded_ref::insert

Insert segments

## Synopsis

Declared in `<boost/url/segments_encoded_ref.hpp>`

    template<class FwdIt>
    iterator
    insert(
        iterator before,
        FwdIt first,
        FwdIt last);

## Description

This function inserts the segments in a range before the specified position. Reserved characters in the range are automatically escaped. Escapes in the range are preserved.

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

| 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_resource().size()`.

## Exception Safety

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

## Exceptions

Name | Thrown on
`system_error` | The range contains an invalid percent‐encoding.

## Return Value

An iterator to the first segment inserted, or `before` if `init.empty()`.

## Parameters

Name | Description
--- | ---
before | An iterator before which the range is inserted. This may be equal to `end()`.
first | The first element in the range to insert.
last | One past the last element in the range to insert.

Created with MrDocs