| Home | Libraries | People | FAQ | More

##### basic_static_string::replace (13 of 14 overloads)

Replace a part of the string.

###### Synopsis

    template<
        typename InputIterator>
    constexpr basic_static_string&
    replace(
        basic_static_string::const_iterator i1,
        basic_static_string::const_iterator i2,
        InputIterator j1,
        InputIterator j2);

###### Description

Replaces the characters in the range `{i1, i2)` with those of `{j1, j2)`.

###### Precondition

`{i1, i2)` is a valid range.

`{j1, j2)` is a valid range.

###### Exception Safety

Strong guarantee.

###### Remarks

All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.

###### Template Parameters

Type | Description
--- | ---
`InputIterator` | The type of the iterators.

###### Constraints

`InputIterator` satisfies InputIterator and does not satisfy ForwardIterator.

###### Return Value

`*this`

###### Parameters

Name | Description
--- | ---
`i1` | An iterator referring to the first character to replace.
`i2` | An iterator referring past the end of the last character to replace.
`j1` | An iterator referring to the first character to replace with.
`j2` | An iterator referring past the end of the last character to replace with.

###### Exceptions

Type | Thrown On
--- | ---
`std::length_error` | `size() + (inserted - std::distance(i1, i2)) > max_size()`