| Home | Libraries | People | FAQ | More

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

Replace a part of the string.

###### Synopsis

    template<
        std::size_t M>
    basic_static_string&
    replace(
        size_type pos1,
        size_type n1,
        const basic_static_string< M, CharT, Traits >& str,
        size_type pos2,
        size_type n2 = npos);

###### Description

Replaces `rcount` characters starting at index `pos1` with those of `str.subview(pos2, n2)`, where `rcount` is `std::min(n1, size() - pos1)`.

###### Exception Safety

Strong guarantee.

###### Remarks

The replacement is done unchecked when the capacity of `str` differs from that of the string the function is called on. All references, pointers, or iterators referring to contained elements are invalidated. Any past-the-end iterators are also invalidated.

###### Return Value

`*this`

###### Parameters

Name | Description
--- | ---
`pos1` | The index to replace at.
`n1` | The number of characters to replace.
`str` | The string to replace with.
`pos2` | The index to begin the substring.
`n2` | The length of the substring. The default argument for this parameter is `npos`.

###### Exceptions

Type | Thrown On
--- | ---
`std::length_error` | `size() + (std::min(str.size(), n2) - rcount) > max_size()`
`std::out_of_range` | `pos1 > size()`
`std::out_of_range` | `pos2 > str.size()`