Imported Upstream version 1.72.0
[platform/upstream/boost.git] / doc / html / boost / container / basic_string.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
5 <title>Class template basic_string</title>
6 <link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
7 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
8 <link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
9 <link rel="up" href="../../boost_container_header_reference.html#header.boost.container.string_hpp" title="Header &lt;boost/container/string.hpp&gt;">
10 <link rel="prev" href="swap_idm45666066660352.html" title="Function template swap">
11 <link rel="next" href="string.html" title="Type definition string">
12 </head>
13 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14 <table cellpadding="2" width="100%"><tr>
15 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
16 <td align="center"><a href="../../../../index.html">Home</a></td>
17 <td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
18 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
19 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
20 <td align="center"><a href="../../../../more/index.htm">More</a></td>
21 </tr></table>
22 <hr>
23 <div class="spirit-nav">
24 <a accesskey="p" href="swap_idm45666066660352.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_container_header_reference.html#header.boost.container.string_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="string.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
25 </div>
26 <div class="refentry">
27 <a name="boost.container.basic_string"></a><div class="titlepage"></div>
28 <div class="refnamediv">
29 <h2><span class="refentrytitle">Class template basic_string</span></h2>
30 <p>boost::container::basic_string</p>
31 </div>
32 <h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
33 <div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../boost_container_header_reference.html#header.boost.container.string_hpp" title="Header &lt;boost/container/string.hpp&gt;">boost/container/string.hpp</a>&gt;
34
35 </span><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span><span class="special">,</span> 
36          <span class="keyword">typename</span> Allocator <span class="special">=</span> <span class="keyword">void</span><span class="special">&gt;</span> 
37 <span class="keyword">class</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">:</span>
38   <span class="keyword">private</span> <span class="identifier">dtl</span><span class="special">::</span><span class="identifier">basic_string_base</span><span class="special">&lt;</span> <span class="identifier">real_allocator</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Allocator</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span>
39 <span class="special">{</span>
40 <span class="keyword">public</span><span class="special">:</span>
41   <span class="comment">// types</span>
42   <span class="keyword">typedef</span> <span class="identifier">Traits</span>                                                                  <a name="boost.container.basic_string.traits_type"></a><span class="identifier">traits_type</span><span class="special">;</span>           
43   <span class="keyword">typedef</span> <span class="identifier">CharT</span>                                                                   <a name="boost.container.basic_string.value_type"></a><span class="identifier">value_type</span><span class="special">;</span>            
44   <span class="keyword">typedef</span> <span class="identifier">real_allocator</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Allocator</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span>                                <a name="boost.container.basic_string.allocator_type"></a><span class="identifier">allocator_type</span><span class="special">;</span>        
45   <span class="keyword">typedef</span> <span class="special">::</span><a class="link" href="allocator_traits.html" title="Struct template allocator_traits">boost::container::allocator_traits</a><span class="special">&lt;</span> <span class="identifier">allocator_type</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">pointer</span>         <a name="boost.container.basic_string.pointer"></a><span class="identifier">pointer</span><span class="special">;</span>               
46   <span class="keyword">typedef</span> <span class="special">::</span><a class="link" href="allocator_traits.html" title="Struct template allocator_traits">boost::container::allocator_traits</a><span class="special">&lt;</span> <span class="identifier">allocator_type</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">const_pointer</span>   <a name="boost.container.basic_string.const_pointer"></a><span class="identifier">const_pointer</span><span class="special">;</span>         
47   <span class="keyword">typedef</span> <span class="special">::</span><a class="link" href="allocator_traits.html" title="Struct template allocator_traits">boost::container::allocator_traits</a><span class="special">&lt;</span> <span class="identifier">allocator_type</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">reference</span>       <a name="boost.container.basic_string.reference"></a><span class="identifier">reference</span><span class="special">;</span>             
48   <span class="keyword">typedef</span> <span class="special">::</span><a class="link" href="allocator_traits.html" title="Struct template allocator_traits">boost::container::allocator_traits</a><span class="special">&lt;</span> <span class="identifier">allocator_type</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">const_reference</span> <a name="boost.container.basic_string.const_reference"></a><span class="identifier">const_reference</span><span class="special">;</span>       
49   <span class="keyword">typedef</span> <span class="special">::</span><a class="link" href="allocator_traits.html" title="Struct template allocator_traits">boost::container::allocator_traits</a><span class="special">&lt;</span> <span class="identifier">allocator_type</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">size_type</span>       <a name="boost.container.basic_string.size_type"></a><span class="identifier">size_type</span><span class="special">;</span>             
50   <span class="keyword">typedef</span> <span class="special">::</span><a class="link" href="allocator_traits.html" title="Struct template allocator_traits">boost::container::allocator_traits</a><span class="special">&lt;</span> <span class="identifier">allocator_type</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">difference_type</span> <a name="boost.container.basic_string.difference_type"></a><span class="identifier">difference_type</span><span class="special">;</span>       
51   <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span>                                                  <a name="boost.container.basic_string.stored_allocator_type"></a><span class="identifier">stored_allocator_type</span><span class="special">;</span> 
52   <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span>                                                  <a name="boost.container.basic_string.iterator"></a><span class="identifier">iterator</span><span class="special">;</span>              
53   <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span>                                                  <a name="boost.container.basic_string.const_iterator"></a><span class="identifier">const_iterator</span><span class="special">;</span>        
54   <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span>                                                  <a name="boost.container.basic_string.reverse_iterator"></a><span class="identifier">reverse_iterator</span><span class="special">;</span>      
55   <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span>                                                  <a name="boost.container.basic_string.const_reverse_iterator"></a><span class="identifier">const_reverse_iterator</span><span class="special">;</span>
56
57   <span class="comment">// <a class="link" href="basic_string.html#boost.container.basic_stringconstruct-copy-destruct">construct/copy/destruct</a></span>
58   <a class="link" href="basic_string.html#idm45666065899712-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">(</span><span class="identifier">dtl</span><span class="special">::</span><span class="identifier">is_nothrow_default_constructible</span><span class="special">&lt;</span> <span class="identifier">allocator_type</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
59   <span class="keyword">explicit</span> <a class="link" href="basic_string.html#idm45666065896496-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
60   <a class="link" href="basic_string.html#idm45666065892400-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
61   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
62     <span class="keyword">explicit</span> <a class="link" href="basic_string.html#idm45666065887520-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">,</span> 
63                           <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">allocator_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
64   <a class="link" href="basic_string.html#idm45666065881504-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;&amp;</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
65   <a class="link" href="basic_string.html#idm45666065877264-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
66   <a class="link" href="basic_string.html#idm45666065871712-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
67   <a class="link" href="basic_string.html#idm45666065866976-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span><span class="special">;</span>
68   <a class="link" href="basic_string.html#idm45666065862080-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> 
69                <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
70   <a class="link" href="basic_string.html#idm45666065856784-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span>
71   <a class="link" href="basic_string.html#idm45666065853312-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
72   <a class="link" href="basic_string.html#idm45666065849152-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span>
73   <a class="link" href="basic_string.html#idm45666065846384-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
74   <a class="link" href="basic_string.html#idm45666065842928-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">)</span><span class="special">;</span>
75   <a class="link" href="basic_string.html#idm45666065839488-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
76   <a class="link" href="basic_string.html#idm45666065835360-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <a class="link" href="default_init_t.html" title="Struct default_init_t">default_init_t</a><span class="special">)</span><span class="special">;</span>
77   <a class="link" href="basic_string.html#idm45666065831776-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <a class="link" href="default_init_t.html" title="Struct default_init_t">default_init_t</a><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
78   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIterator<span class="special">&gt;</span> <a class="link" href="basic_string.html#idm45666065827504-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="identifier">InputIterator</span><span class="special">,</span> <span class="identifier">InputIterator</span><span class="special">)</span><span class="special">;</span>
79   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIterator<span class="special">&gt;</span> 
80     <a class="link" href="basic_string.html#idm45666065823232-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="identifier">InputIterator</span><span class="special">,</span> <span class="identifier">InputIterator</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
81   <a class="link" href="basic_string.html#idm45666065818272-bb"><span class="identifier">basic_string</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">value_type</span> <span class="special">&gt;</span><span class="special">,</span> 
82                <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">allocator_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
83   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666065810864-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
84   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
85   <a class="link" href="basic_string.html#idm45666065806160-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;&amp;</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">(</span><span class="identifier">allocator_traits_type</span><span class="special">::</span><span class="identifier">propagate_on_container_move_assignment</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">allocator_traits_type</span><span class="special">::</span><span class="identifier">is_always_equal</span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
86   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666065801024-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span>
87   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666065798464-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="identifier">CharT</span><span class="special">)</span><span class="special">;</span>
88   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
89     <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666065795920-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
90   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666065792208-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">CharT</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
91   <a class="link" href="basic_string.html#idm45666065814576-bb"><span class="special">~</span><span class="identifier">basic_string</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
92
93   <span class="comment">// <a class="link" href="basic_string.html#idm45666066617904-bb">public member functions</a></span>
94   <span class="identifier">allocator_type</span> <a class="link" href="basic_string.html#idm45666066617344-bb"><span class="identifier">get_allocator</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
95   <span class="identifier">stored_allocator_type</span> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066613488-bb"><span class="identifier">get_stored_allocator</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
96   <span class="keyword">const</span> <span class="identifier">stored_allocator_type</span> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066608800-bb"><span class="identifier">get_stored_allocator</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
97   <span class="identifier">iterator</span> <a class="link" href="basic_string.html#idm45666066604096-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
98   <span class="identifier">const_iterator</span> <a class="link" href="basic_string.html#idm45666066600256-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
99   <span class="identifier">iterator</span> <a class="link" href="basic_string.html#idm45666066596400-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
100   <span class="identifier">const_iterator</span> <a class="link" href="basic_string.html#idm45666066592576-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
101   <span class="identifier">reverse_iterator</span> <a class="link" href="basic_string.html#idm45666066588752-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
102   <span class="identifier">const_reverse_iterator</span> <a class="link" href="basic_string.html#idm45666066584896-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
103   <span class="identifier">reverse_iterator</span> <a class="link" href="basic_string.html#idm45666066581040-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
104   <span class="identifier">const_reverse_iterator</span> <a class="link" href="basic_string.html#idm45666066577184-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
105   <span class="identifier">const_iterator</span> <a class="link" href="basic_string.html#idm45666066573328-bb"><span class="identifier">cbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
106   <span class="identifier">const_iterator</span> <a class="link" href="basic_string.html#idm45666066569472-bb"><span class="identifier">cend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
107   <span class="identifier">const_reverse_iterator</span> <a class="link" href="basic_string.html#idm45666066565648-bb"><span class="identifier">crbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
108   <span class="identifier">const_reverse_iterator</span> <a class="link" href="basic_string.html#idm45666066561792-bb"><span class="identifier">crend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
109   <span class="keyword">bool</span> <a class="link" href="basic_string.html#idm45666066557936-bb"><span class="identifier">empty</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
110   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066554112-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
111   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066550272-bb"><span class="identifier">length</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
112   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066546432-bb"><span class="identifier">max_size</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
113   <span class="keyword">void</span> <a class="link" href="basic_string.html#idm45666066542608-bb"><span class="identifier">resize</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">)</span><span class="special">;</span>
114   <span class="keyword">void</span> <a class="link" href="basic_string.html#idm45666066537552-bb"><span class="identifier">resize</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span>
115   <span class="keyword">void</span> <a class="link" href="basic_string.html#idm45666066533184-bb"><span class="identifier">resize</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <a class="link" href="default_init_t.html" title="Struct default_init_t">default_init_t</a><span class="special">)</span><span class="special">;</span>
116   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066527168-bb"><span class="identifier">capacity</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
117   <span class="keyword">void</span> <a class="link" href="basic_string.html#idm45666066523280-bb"><span class="identifier">reserve</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span>
118   <span class="keyword">void</span> <a class="link" href="basic_string.html#idm45666066519616-bb"><span class="identifier">shrink_to_fit</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
119   <span class="identifier">reference</span> <a class="link" href="basic_string.html#idm45666066516000-bb"><span class="identifier">front</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
120   <span class="identifier">const_reference</span> <a class="link" href="basic_string.html#idm45666066511312-bb"><span class="identifier">front</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
121   <span class="identifier">reference</span> <a class="link" href="basic_string.html#idm45666066506624-bb"><span class="identifier">back</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
122   <span class="identifier">const_reference</span> <a class="link" href="basic_string.html#idm45666066501936-bb"><span class="identifier">back</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
123   <span class="identifier">reference</span> <a class="link" href="basic_string.html#idm45666066497248-bb"><span class="keyword">operator</span><span class="special">[</span><span class="special">]</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
124   <span class="identifier">const_reference</span> <a class="link" href="basic_string.html#idm45666066491856-bb"><span class="keyword">operator</span><span class="special">[</span><span class="special">]</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
125   <span class="identifier">reference</span> <a class="link" href="basic_string.html#idm45666066486464-bb"><span class="identifier">at</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span>
126   <span class="identifier">const_reference</span> <a class="link" href="basic_string.html#idm45666066481328-bb"><span class="identifier">at</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
127   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066475920-bb"><span class="keyword">operator</span><span class="special">+=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
128   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
129     <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066471808-bb"><span class="keyword">operator</span><span class="special">+=</span></a><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
130   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066467392-bb"><span class="keyword">operator</span><span class="special">+=</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span>
131   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066463744-bb"><span class="keyword">operator</span><span class="special">+=</span></a><span class="special">(</span><span class="identifier">CharT</span><span class="special">)</span><span class="special">;</span>
132   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066460096-bb"><span class="keyword">operator</span><span class="special">+=</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">CharT</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
133   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066457280-bb"><span class="identifier">append</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
134   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
135     <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066453168-bb"><span class="identifier">append</span></a><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
136   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066449168-bb"><span class="identifier">append</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span><span class="special">;</span>
137   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066441536-bb"><span class="identifier">append</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span>
138   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066435200-bb"><span class="identifier">append</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span>
139   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066430624-bb"><span class="identifier">append</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">)</span><span class="special">;</span>
140   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIter<span class="special">&gt;</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066426256-bb"><span class="identifier">append</span></a><span class="special">(</span><span class="identifier">InputIter</span><span class="special">,</span> <span class="identifier">InputIter</span><span class="special">)</span><span class="special">;</span>
141   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066420176-bb"><span class="identifier">append</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">CharT</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
142   <span class="keyword">void</span> <a class="link" href="basic_string.html#idm45666066417328-bb"><span class="identifier">push_back</span></a><span class="special">(</span><span class="identifier">CharT</span><span class="special">)</span><span class="special">;</span>
143   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066414784-bb"><span class="identifier">assign</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
144   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
145     <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066410672-bb"><span class="identifier">assign</span></a><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
146   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066405824-bb"><span class="identifier">assign</span></a><span class="special">(</span><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;&amp;</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
147   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066400592-bb"><span class="identifier">assign</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span>
148   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066393248-bb"><span class="identifier">assign</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span>
149   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066387040-bb"><span class="identifier">assign</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span>
150   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066382464-bb"><span class="identifier">assign</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">)</span><span class="special">;</span>
151   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066378096-bb"><span class="identifier">assign</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span>
152   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIter<span class="special">&gt;</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066373856-bb"><span class="identifier">assign</span></a><span class="special">(</span><span class="identifier">InputIter</span><span class="special">,</span> <span class="identifier">InputIter</span><span class="special">)</span><span class="special">;</span>
153   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066368640-bb"><span class="identifier">assign</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">CharT</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
154   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066365792-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
155   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
156   <a class="link" href="basic_string.html#idm45666066359232-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span><span class="special">;</span>
157   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066350864-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span>
158   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066343664-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span>
159   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066337424-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">)</span><span class="special">;</span>
160   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
161     <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066331440-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
162   <span class="identifier">iterator</span> <a class="link" href="basic_string.html#idm45666066326304-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">)</span><span class="special">;</span>
163   <span class="identifier">iterator</span> <a class="link" href="basic_string.html#idm45666066321296-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">)</span><span class="special">;</span>
164   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIter<span class="special">&gt;</span> 
165     <span class="identifier">iterator</span> <a class="link" href="basic_string.html#idm45666066315600-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">InputIter</span><span class="special">,</span> <span class="identifier">InputIter</span><span class="special">)</span><span class="special">;</span>
166   <span class="identifier">iterator</span> <a class="link" href="basic_string.html#idm45666066309024-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">CharT</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
167   <span class="keyword">void</span> <a class="link" href="basic_string.html#idm45666066304848-bb"><span class="identifier">pop_back</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
168   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066301024-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span><span class="special">;</span>
169   <span class="identifier">iterator</span> <a class="link" href="basic_string.html#idm45666066293984-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
170   <span class="identifier">iterator</span> <a class="link" href="basic_string.html#idm45666066289344-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
171   <span class="keyword">void</span> <a class="link" href="basic_string.html#idm45666066283104-bb"><span class="identifier">clear</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
172   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066279248-bb"><span class="identifier">replace</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
173   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
174     <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
175     <a class="link" href="basic_string.html#idm45666066272000-bb"><span class="identifier">replace</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
176   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
177   <a class="link" href="basic_string.html#idm45666066266176-bb"><span class="identifier">replace</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> 
178           <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span><span class="special">;</span>
179   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
180     <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
181     <a class="link" href="basic_string.html#idm45666066257104-bb"><span class="identifier">replace</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> 
182             <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span><span class="special">;</span>
183   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066247776-bb"><span class="identifier">replace</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span>
184   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066239616-bb"><span class="identifier">replace</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span>
185   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066232144-bb"><span class="identifier">replace</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">)</span><span class="special">;</span>
186   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066224576-bb"><span class="identifier">replace</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
187   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
188   <a class="link" href="basic_string.html#idm45666066217328-bb"><span class="identifier">replace</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span><span class="special">;</span>
189   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066209792-bb"><span class="identifier">replace</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">)</span><span class="special">;</span>
190   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a class="link" href="basic_string.html#idm45666066202896-bb"><span class="identifier">replace</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">)</span><span class="special">;</span>
191   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIter<span class="special">&gt;</span> 
192     <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
193     <a class="link" href="basic_string.html#idm45666066195392-bb"><span class="identifier">replace</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">InputIter</span><span class="special">,</span> <span class="identifier">InputIter</span><span class="special">)</span><span class="special">;</span>
194   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
195     <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
196     <a class="link" href="basic_string.html#idm45666066187040-bb"><span class="identifier">replace</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
197   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
198   <a class="link" href="basic_string.html#idm45666066179504-bb"><span class="identifier">replace</span></a><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">CharT</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
199   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066173536-bb"><span class="identifier">copy</span></a><span class="special">(</span><span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
200   <span class="keyword">void</span> <a class="link" href="basic_string.html#idm45666066166112-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">(</span><span class="identifier">allocator_traits_type</span><span class="special">::</span><span class="identifier">propagate_on_container_swap</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">allocator_traits_type</span><span class="special">::</span><span class="identifier">is_always_equal</span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
201   <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> <a class="link" href="basic_string.html#idm45666066161984-bb"><span class="identifier">c_str</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
202   <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> <a class="link" href="basic_string.html#idm45666066158064-bb"><span class="identifier">data</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
203   <span class="identifier">CharT</span> <span class="special">*</span> <a class="link" href="basic_string.html#idm45666066154144-bb"><span class="identifier">data</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
204   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
205     <a class="link" href="basic_string.html#idm45666066151136-bb"><span class="keyword">operator</span> <span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
206   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> BasicStringView<span class="special">&gt;</span> <span class="identifier">BasicStringView</span> <a class="link" href="basic_string.html#idm45666066146992-bb"><span class="identifier">to_view</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
207   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066142224-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
208   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
209     <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066136032-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
210   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066129120-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
211   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066123184-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
212   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066117648-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
213   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066112992-bb"><span class="identifier">rfind</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
214   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
215     <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066106800-bb"><span class="identifier">rfind</span></a><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
216   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066099888-bb"><span class="identifier">rfind</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
217   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066093984-bb"><span class="identifier">rfind</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
218   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066088432-bb"><span class="identifier">rfind</span></a><span class="special">(</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
219   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066083776-bb"><span class="identifier">find_first_of</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
220   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
221     <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066077600-bb"><span class="identifier">find_first_of</span></a><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
222   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066070704-bb"><span class="identifier">find_first_of</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
223   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066064784-bb"><span class="identifier">find_first_of</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
224   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066059248-bb"><span class="identifier">find_first_of</span></a><span class="special">(</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
225   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066053680-bb"><span class="identifier">find_last_of</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
226   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
227     <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066047504-bb"><span class="identifier">find_last_of</span></a><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
228   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066040608-bb"><span class="identifier">find_last_of</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
229   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066034688-bb"><span class="identifier">find_last_of</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
230   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066029120-bb"><span class="identifier">find_last_of</span></a><span class="special">(</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
231   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066024496-bb"><span class="identifier">find_first_not_of</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
232   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
233     <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066018320-bb"><span class="identifier">find_first_not_of</span></a><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">,</span> 
234                                 <span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
235   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066011424-bb"><span class="identifier">find_first_not_of</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
236   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666066005472-bb"><span class="identifier">find_first_not_of</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
237   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666065999920-bb"><span class="identifier">find_first_not_of</span></a><span class="special">(</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
238   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666065995280-bb"><span class="identifier">find_last_not_of</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
239   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
240     <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666065989104-bb"><span class="identifier">find_last_not_of</span></a><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">,</span> 
241                                <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
242   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666065982208-bb"><span class="identifier">find_last_not_of</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
243   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666065976288-bb"><span class="identifier">find_last_not_of</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
244   <span class="identifier">size_type</span> <a class="link" href="basic_string.html#idm45666065970736-bb"><span class="identifier">find_last_not_of</span></a><span class="special">(</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
245   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <a class="link" href="basic_string.html#idm45666065966096-bb"><span class="identifier">substr</span></a><span class="special">(</span><span class="identifier">size_type</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
246   <span class="keyword">int</span> <a class="link" href="basic_string.html#idm45666065959184-bb"><span class="identifier">compare</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
247   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
248     <span class="keyword">int</span> <a class="link" href="basic_string.html#idm45666065953888-bb"><span class="identifier">compare</span></a><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
249   <span class="keyword">int</span> <a class="link" href="basic_string.html#idm45666065949072-bb"><span class="identifier">compare</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
250   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
251     <span class="keyword">int</span> <a class="link" href="basic_string.html#idm45666065941664-bb"><span class="identifier">compare</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
252   <span class="keyword">int</span> <a class="link" href="basic_string.html#idm45666065934592-bb"><span class="identifier">compare</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> 
253               <span class="identifier">size_type</span> <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
254   <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
255     <span class="keyword">int</span> <a class="link" href="basic_string.html#idm45666065925616-bb"><span class="identifier">compare</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">,</span> 
256                 <span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
257   <span class="keyword">int</span> <a class="link" href="basic_string.html#idm45666065916192-bb"><span class="identifier">compare</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
258   <span class="keyword">int</span> <a class="link" href="basic_string.html#idm45666065912544-bb"><span class="identifier">compare</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
259   <span class="keyword">int</span> <a class="link" href="basic_string.html#idm45666065905872-bb"><span class="identifier">compare</span></a><span class="special">(</span><span class="identifier">size_type</span><span class="special">,</span> <span class="identifier">size_type</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
260
261   <span class="comment">// public data members</span>
262   <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">size_type</span> <span class="identifier">npos</span><span class="special">;</span>
263 <span class="special">}</span><span class="special">;</span></pre></div>
264 <div class="refsect1">
265 <a name="id-1.3.10.14.39.3.4"></a><h2>Description</h2>
266 <p>The <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> class represents a Sequence of characters. It contains all the usual operations of a Sequence, and, additionally, it contains standard string operations such as search and concatenation.</p>
267 <p>The <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> class is parameterized by character type, and by that type's Character Traits.</p>
268 <p>This class has performance characteristics very much like vector&lt;&gt;, meaning, for example, that it does not perform reference-count or copy-on-write, and that concatenation of two strings is an O(N) operation.</p>
269 <p>Some of <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a>'s member functions use an unusual method of specifying positions and ranges. In addition to the conventional method using iterators, many of <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a>'s member functions use a single value pos of type size_type to represent a position (in which case the position is begin() + pos, and many of <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a>'s member functions use two values, pos and n, to represent a range. In that case pos is the beginning of the range and n is its size. That is, the range is [begin() + pos, begin() + pos + n).</p>
270 <p>Note that the C++ standard does not specify the complexity of <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> operations. In this implementation, <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> has performance characteristics very similar to those of vector: access to a single character is O(1), while copy and concatenation are O(N).</p>
271 <p>In this implementation, begin(), end(), rbegin(), rend(), operator[], c_str(), and data() do not invalidate iterators. In this implementation, iterators are only invalidated by member functions that explicitly change the string's contents.</p>
272 <p>
273 </p>
274 <div class="refsect2">
275 <a name="id-1.3.10.14.39.3.4.9"></a><h3>Template Parameters</h3>
276 <div class="orderedlist"><ol class="orderedlist" type="1">
277 <li class="listitem">
278 <pre class="literallayout"><span class="keyword">typename</span> CharT</pre>
279 <p>The type of character it contains. </p>
280 </li>
281 <li class="listitem">
282 <pre class="literallayout"><span class="keyword">typename</span> Traits <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span><span class="special">&lt;</span><span class="identifier">CharT</span><span class="special">&gt;</span></pre>
283 <p>The Character Traits type, which encapsulates basic character operations </p>
284 </li>
285 <li class="listitem">
286 <pre class="literallayout"><span class="keyword">typename</span> Allocator <span class="special">=</span> <span class="keyword">void</span></pre>
287 <p>The allocator, used for internal memory management. </p>
288 </li>
289 </ol></div>
290 </div>
291 <div class="refsect2">
292 <a name="id-1.3.10.14.39.3.4.10"></a><h3>
293 <a name="boost.container.basic_stringconstruct-copy-destruct"></a><code class="computeroutput">basic_string</code> 
294         public
295        construct/copy/destruct</h3>
296 <div class="orderedlist"><ol class="orderedlist" type="1">
297 <li class="listitem">
298 <pre class="literallayout"><a name="idm45666065899712-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">(</span><span class="identifier">dtl</span><span class="special">::</span><span class="identifier">is_nothrow_default_constructible</span><span class="special">&lt;</span> <span class="identifier">allocator_type</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>
299 <p><span class="bold"><strong>Effects</strong></span>: Default constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code>.</p>
300 <p><span class="bold"><strong>Throws</strong></span>: If allocator_type's default constructor throws. </p>
301 </li>
302 <li class="listitem">
303 <pre class="literallayout"><span class="keyword">explicit</span> <a name="idm45666065896496-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> a<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
304 <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code> taking the allocator as parameter.</p>
305 <p><span class="bold"><strong>Throws</strong></span>: Nothing </p>
306 </li>
307 <li class="listitem">
308 <pre class="literallayout"><a name="idm45666065892400-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> s<span class="special">)</span><span class="special">;</span></pre>
309 <p><span class="bold"><strong>Effects</strong></span>: Copy constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code>.</p>
310 <p><span class="bold"><strong>Postcondition</strong></span>: x == *this.</p>
311 <p><span class="bold"><strong>Throws</strong></span>: If allocator_type's default constructor or allocation throws. </p>
312 </li>
313 <li class="listitem">
314 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
315   <span class="keyword">explicit</span> <a name="idm45666065887520-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">,</span> 
316                         <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> a <span class="special">=</span> <span class="identifier">allocator_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>
317 <p><span class="bold"><strong>Effects</strong></span>: Same as <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code>(sv.data(), sv.size(), a).</p>
318 <p><span class="bold"><strong>Throws</strong></span>: If allocator_type's default constructor or allocation throws. </p>
319 </li>
320 <li class="listitem">
321 <pre class="literallayout"><a name="idm45666065881504-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;&amp;</span> s<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
322 <p><span class="bold"><strong>Effects</strong></span>: Move constructor. Moves s's resources to *this.</p>
323 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
324 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
325 </li>
326 <li class="listitem">
327 <pre class="literallayout"><a name="idm45666065877264-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> s<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> a<span class="special">)</span><span class="special">;</span></pre>
328 <p><span class="bold"><strong>Effects</strong></span>: Copy constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code> using the specified allocator.</p>
329 <p><span class="bold"><strong>Postcondition</strong></span>: x == *this.</p>
330 <p><span class="bold"><strong>Throws</strong></span>: If allocation throws. </p>
331 </li>
332 <li class="listitem">
333 <pre class="literallayout"><a name="idm45666065871712-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;&amp;</span> s<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> a<span class="special">)</span><span class="special">;</span></pre>
334 <p><span class="bold"><strong>Effects</strong></span>: Move constructor using the specified allocator. Moves s's resources to *this.</p>
335 <p><span class="bold"><strong>Throws</strong></span>: If allocation throws.</p>
336 <p><span class="bold"><strong>Complexity</strong></span>: Constant if a == s.get_allocator(), linear otherwise. </p>
337 </li>
338 <li class="listitem">
339 <pre class="literallayout"><a name="idm45666065866976-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos<span class="special">,</span> <span class="identifier">size_type</span> n <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span><span class="special">;</span></pre>
340 <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code> with a default-constructed allocator, and is initialized by a specific number of characters of the s string. </p>
341 </li>
342 <li class="listitem">
343 <pre class="literallayout"><a name="idm45666065862080-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">,</span> 
344              <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> a<span class="special">)</span><span class="special">;</span></pre>
345 <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code> taking the allocator as parameter, and is initialized by a specific number of characters of the s string. </p>
346 </li>
347 <li class="listitem">
348 <pre class="literallayout"><a name="idm45666065856784-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre>
349 <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code> taking a default-constructed allocator, and is initialized by a specific number of characters of the s c-string. </p>
350 </li>
351 <li class="listitem">
352 <pre class="literallayout"><a name="idm45666065853312-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> a<span class="special">)</span><span class="special">;</span></pre>
353 <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code> taking the allocator as parameter, and is initialized by a specific number of characters of the s c-string. </p>
354 </li>
355 <li class="listitem">
356 <pre class="literallayout"><a name="idm45666065849152-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">)</span><span class="special">;</span></pre>
357 <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code> with a default-constructed allocator, and is initialized by the null-terminated s c-string. </p>
358 </li>
359 <li class="listitem">
360 <pre class="literallayout"><a name="idm45666065846384-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> a<span class="special">)</span><span class="special">;</span></pre>
361 <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code> taking the allocator as parameter, and is initialized by the null-terminated s c-string. </p>
362 </li>
363 <li class="listitem">
364 <pre class="literallayout"><a name="idm45666065842928-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="identifier">CharT</span> c<span class="special">)</span><span class="special">;</span></pre>
365 <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code> with a default-constructed allocator, and is initialized by n copies of c. </p>
366 </li>
367 <li class="listitem">
368 <pre class="literallayout"><a name="idm45666065839488-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="identifier">CharT</span> c<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> a<span class="special">)</span><span class="special">;</span></pre>
369 <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code> taking the allocator as parameter, and is initialized by n copies of c. </p>
370 </li>
371 <li class="listitem">
372 <pre class="literallayout"><a name="idm45666065835360-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <a class="link" href="default_init_t.html" title="Struct default_init_t">default_init_t</a><span class="special">)</span><span class="special">;</span></pre>
373 <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code> with a default-constructed allocator, and is initialized by n default-initialized characters. </p>
374 </li>
375 <li class="listitem">
376 <pre class="literallayout"><a name="idm45666065831776-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <a class="link" href="default_init_t.html" title="Struct default_init_t">default_init_t</a><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> a<span class="special">)</span><span class="special">;</span></pre>
377 <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code> taking the allocator as parameter, and is initialized by n default-initialized characters. </p>
378 </li>
379 <li class="listitem">
380 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIterator<span class="special">&gt;</span> 
381   <a name="idm45666065827504-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="identifier">InputIterator</span> f<span class="special">,</span> <span class="identifier">InputIterator</span> l<span class="special">)</span><span class="special">;</span></pre>
382 <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code> with a default-constructed allocator, and a range of iterators. </p>
383 </li>
384 <li class="listitem">
385 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIterator<span class="special">&gt;</span> 
386   <a name="idm45666065823232-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="identifier">InputIterator</span> f<span class="special">,</span> <span class="identifier">InputIterator</span> l<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> a<span class="special">)</span><span class="special">;</span></pre>
387 <p><span class="bold"><strong>Effects</strong></span>: Constructs a <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code> taking the allocator as parameter, and a range of iterators. </p>
388 </li>
389 <li class="listitem">
390 <pre class="literallayout"><a name="idm45666065818272-bb"></a><span class="identifier">basic_string</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">value_type</span> <span class="special">&gt;</span> il<span class="special">,</span> 
391              <span class="keyword">const</span> <span class="identifier">allocator_type</span> <span class="special">&amp;</span> a <span class="special">=</span> <span class="identifier">allocator_type</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>
392 <p><span class="bold"><strong>Effects</strong></span>: Same as <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code>(il.begin(), il.end(), a). </p>
393 </li>
394 <li class="listitem">
395 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666065810864-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> x<span class="special">)</span><span class="special">;</span></pre>
396 <p><span class="bold"><strong>Effects</strong></span>: Copy constructs a string.</p>
397 <p><span class="bold"><strong>Postcondition</strong></span>: x == *this.</p>
398 <p><span class="bold"><strong>Complexity</strong></span>: Linear to the elements x contains. </p>
399 </li>
400 <li class="listitem">
401 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
402 <a name="idm45666065806160-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;&amp;</span> x<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">(</span><span class="identifier">allocator_traits_type</span><span class="special">::</span><span class="identifier">propagate_on_container_move_assignment</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">allocator_traits_type</span><span class="special">::</span><span class="identifier">is_always_equal</span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>
403 <p><span class="bold"><strong>Effects</strong></span>: Move constructor. Moves x's resources to *this.</p>
404 <p><span class="bold"><strong>Throws</strong></span>: If allocator_traits_type::propagate_on_container_move_assignment is false and allocation throws</p>
405 <p><span class="bold"><strong>Complexity</strong></span>: Constant if allocator_traits_type:: propagate_on_container_move_assignment is true or this-&gt;get&gt;allocator() == x.get_allocator(). Linear otherwise. </p>
406 </li>
407 <li class="listitem">
408 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666065801024-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">)</span><span class="special">;</span></pre>
409 <p><span class="bold"><strong>Effects</strong></span>: Assignment from a null-terminated c-string. </p>
410 </li>
411 <li class="listitem">
412 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666065798464-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="identifier">CharT</span> c<span class="special">)</span><span class="special">;</span></pre>
413 <p><span class="bold"><strong>Effects</strong></span>: Returns *this = basic_string(1, c). </p>
414 </li>
415 <li class="listitem">
416 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
417   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666065795920-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">)</span><span class="special">;</span></pre>
418 <p><span class="bold"><strong>Effects</strong></span>: Equivalent to return assign(sv). </p>
419 </li>
420 <li class="listitem">
421 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666065792208-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">CharT</span> <span class="special">&gt;</span> il<span class="special">)</span><span class="special">;</span></pre>
422 <p><span class="bold"><strong>Effects</strong></span>: Returns *this = basic_string(il); </p>
423 </li>
424 <li class="listitem">
425 <pre class="literallayout"><a name="idm45666065814576-bb"></a><span class="special">~</span><span class="identifier">basic_string</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
426 <p><span class="bold"><strong>Effects</strong></span>: Destroys the <code class="computeroutput"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a></code>. All used memory is deallocated.</p>
427 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
428 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
429 </li>
430 </ol></div>
431 </div>
432 <div class="refsect2">
433 <a name="id-1.3.10.14.39.3.4.11"></a><h3>
434 <a name="idm45666066617904-bb"></a><code class="computeroutput">basic_string</code> public member functions</h3>
435 <div class="orderedlist"><ol class="orderedlist" type="1">
436 <li class="listitem">
437 <pre class="literallayout"><span class="identifier">allocator_type</span> <a name="idm45666066617344-bb"></a><span class="identifier">get_allocator</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
438 <p><span class="bold"><strong>Effects</strong></span>: Returns a copy of the internal allocator.</p>
439 <p><span class="bold"><strong>Throws</strong></span>: If allocator's copy constructor throws.</p>
440 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
441 </li>
442 <li class="listitem">
443 <pre class="literallayout"><span class="identifier">stored_allocator_type</span> <span class="special">&amp;</span> <a name="idm45666066613488-bb"></a><span class="identifier">get_stored_allocator</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
444 <p><span class="bold"><strong>Effects</strong></span>: Returns a reference to the internal allocator.</p>
445 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
446 <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p>
447 <p><span class="bold"><strong>Note</strong></span>: Non-standard extension. </p>
448 </li>
449 <li class="listitem">
450 <pre class="literallayout"><span class="keyword">const</span> <span class="identifier">stored_allocator_type</span> <span class="special">&amp;</span> <a name="idm45666066608800-bb"></a><span class="identifier">get_stored_allocator</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
451 <p><span class="bold"><strong>Effects</strong></span>: Returns a reference to the internal allocator.</p>
452 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
453 <p><span class="bold"><strong>Complexity</strong></span>: Constant.</p>
454 <p><span class="bold"><strong>Note</strong></span>: Non-standard extension. </p>
455 </li>
456 <li class="listitem">
457 <pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45666066604096-bb"></a><span class="identifier">begin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
458 <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the first element contained in the vector.</p>
459 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
460 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
461 </li>
462 <li class="listitem">
463 <pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45666066600256-bb"></a><span class="identifier">begin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
464 <p><span class="bold"><strong>Effects</strong></span>: Returns a const_iterator to the first element contained in the vector.</p>
465 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
466 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
467 </li>
468 <li class="listitem">
469 <pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45666066596400-bb"></a><span class="identifier">end</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
470 <p><span class="bold"><strong>Effects</strong></span>: Returns an iterator to the end of the vector.</p>
471 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
472 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
473 </li>
474 <li class="listitem">
475 <pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45666066592576-bb"></a><span class="identifier">end</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
476 <p><span class="bold"><strong>Effects</strong></span>: Returns a const_iterator to the end of the vector.</p>
477 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
478 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
479 </li>
480 <li class="listitem">
481 <pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45666066588752-bb"></a><span class="identifier">rbegin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
482 <p><span class="bold"><strong>Effects</strong></span>: Returns a reverse_iterator pointing to the beginning of the reversed vector.</p>
483 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
484 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
485 </li>
486 <li class="listitem">
487 <pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45666066584896-bb"></a><span class="identifier">rbegin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
488 <p><span class="bold"><strong>Effects</strong></span>: Returns a const_reverse_iterator pointing to the beginning of the reversed vector.</p>
489 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
490 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
491 </li>
492 <li class="listitem">
493 <pre class="literallayout"><span class="identifier">reverse_iterator</span> <a name="idm45666066581040-bb"></a><span class="identifier">rend</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
494 <p><span class="bold"><strong>Effects</strong></span>: Returns a reverse_iterator pointing to the end of the reversed vector.</p>
495 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
496 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
497 </li>
498 <li class="listitem">
499 <pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45666066577184-bb"></a><span class="identifier">rend</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
500 <p><span class="bold"><strong>Effects</strong></span>: Returns a const_reverse_iterator pointing to the end of the reversed vector.</p>
501 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
502 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
503 </li>
504 <li class="listitem">
505 <pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45666066573328-bb"></a><span class="identifier">cbegin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
506 <p><span class="bold"><strong>Effects</strong></span>: Returns a const_iterator to the first element contained in the vector.</p>
507 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
508 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
509 </li>
510 <li class="listitem">
511 <pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm45666066569472-bb"></a><span class="identifier">cend</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
512 <p><span class="bold"><strong>Effects</strong></span>: Returns a const_iterator to the end of the vector.</p>
513 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
514 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
515 </li>
516 <li class="listitem">
517 <pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45666066565648-bb"></a><span class="identifier">crbegin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
518 <p><span class="bold"><strong>Effects</strong></span>: Returns a const_reverse_iterator pointing to the beginning of the reversed vector.</p>
519 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
520 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
521 </li>
522 <li class="listitem">
523 <pre class="literallayout"><span class="identifier">const_reverse_iterator</span> <a name="idm45666066561792-bb"></a><span class="identifier">crend</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
524 <p><span class="bold"><strong>Effects</strong></span>: Returns a const_reverse_iterator pointing to the end of the reversed vector.</p>
525 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
526 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
527 </li>
528 <li class="listitem">
529 <pre class="literallayout"><span class="keyword">bool</span> <a name="idm45666066557936-bb"></a><span class="identifier">empty</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
530 <p><span class="bold"><strong>Effects</strong></span>: Returns true if the vector contains no elements.</p>
531 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
532 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
533 </li>
534 <li class="listitem">
535 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066554112-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
536 <p><span class="bold"><strong>Effects</strong></span>: Returns the number of the elements contained in the vector.</p>
537 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
538 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
539 </li>
540 <li class="listitem">
541 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066550272-bb"></a><span class="identifier">length</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
542 <p><span class="bold"><strong>Effects</strong></span>: Returns the number of the elements contained in the vector.</p>
543 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
544 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
545 </li>
546 <li class="listitem">
547 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066546432-bb"></a><span class="identifier">max_size</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
548 <p><span class="bold"><strong>Effects</strong></span>: Returns the largest possible size of the vector.</p>
549 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
550 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
551 </li>
552 <li class="listitem">
553 <pre class="literallayout"><span class="keyword">void</span> <a name="idm45666066542608-bb"></a><span class="identifier">resize</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="identifier">CharT</span> c<span class="special">)</span><span class="special">;</span></pre>
554 <p><span class="bold"><strong>Effects</strong></span>: Inserts or erases elements at the end such that the size becomes n. New elements are copy constructed from x.</p>
555 <p><span class="bold"><strong>Throws</strong></span>: If memory allocation throws</p>
556 <p><span class="bold"><strong>Complexity</strong></span>: Linear to the difference between size() and new_size. </p>
557 </li>
558 <li class="listitem">
559 <pre class="literallayout"><span class="keyword">void</span> <a name="idm45666066537552-bb"></a><span class="identifier">resize</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre>
560 <p><span class="bold"><strong>Effects</strong></span>: Inserts or erases elements at the end such that the size becomes n. New elements are value initialized.</p>
561 <p><span class="bold"><strong>Throws</strong></span>: If memory allocation throws</p>
562 <p><span class="bold"><strong>Complexity</strong></span>: Linear to the difference between size() and new_size. </p>
563 </li>
564 <li class="listitem">
565 <pre class="literallayout"><span class="keyword">void</span> <a name="idm45666066533184-bb"></a><span class="identifier">resize</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <a class="link" href="default_init_t.html" title="Struct default_init_t">default_init_t</a><span class="special">)</span><span class="special">;</span></pre>
566 <p><span class="bold"><strong>Effects</strong></span>: Inserts or erases elements at the end such that the size becomes n. New elements are uninitialized.</p>
567 <p><span class="bold"><strong>Throws</strong></span>: If memory allocation throws</p>
568 <p><span class="bold"><strong>Complexity</strong></span>: Linear to the difference between size() and new_size.</p>
569 <p><span class="bold"><strong>Note</strong></span>: Non-standard extension </p>
570 </li>
571 <li class="listitem">
572 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066527168-bb"></a><span class="identifier">capacity</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
573 <p><span class="bold"><strong>Effects</strong></span>: Number of elements for which memory has been allocated. capacity() is always greater than or equal to size().</p>
574 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
575 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
576 </li>
577 <li class="listitem">
578 <pre class="literallayout"><span class="keyword">void</span> <a name="idm45666066523280-bb"></a><span class="identifier">reserve</span><span class="special">(</span><span class="identifier">size_type</span> res_arg<span class="special">)</span><span class="special">;</span></pre>
579 <p><span class="bold"><strong>Effects</strong></span>: If n is less than or equal to capacity(), this call has no effect. Otherwise, it is a request for allocation of additional memory. If the request is successful, then capacity() is greater than or equal to n; otherwise, capacity() is unchanged. In either case, size() is unchanged.</p>
580 <p><span class="bold"><strong>Throws</strong></span>: If memory allocation allocation throws </p>
581 </li>
582 <li class="listitem">
583 <pre class="literallayout"><span class="keyword">void</span> <a name="idm45666066519616-bb"></a><span class="identifier">shrink_to_fit</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
584 <p><span class="bold"><strong>Effects</strong></span>: Tries to deallocate the excess of memory created with previous allocations. The size of the string is unchanged</p>
585 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
586 <p><span class="bold"><strong>Complexity</strong></span>: Linear to size(). </p>
587 </li>
588 <li class="listitem">
589 <pre class="literallayout"><span class="identifier">reference</span> <a name="idm45666066516000-bb"></a><span class="identifier">front</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
590 <p><span class="bold"><strong>Requires</strong></span>: !empty()</p>
591 <p><span class="bold"><strong>Effects</strong></span>: Returns a reference to the first element of the container.</p>
592 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
593 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
594 </li>
595 <li class="listitem">
596 <pre class="literallayout"><span class="identifier">const_reference</span> <a name="idm45666066511312-bb"></a><span class="identifier">front</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
597 <p><span class="bold"><strong>Requires</strong></span>: !empty()</p>
598 <p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the first element of the container.</p>
599 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
600 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
601 </li>
602 <li class="listitem">
603 <pre class="literallayout"><span class="identifier">reference</span> <a name="idm45666066506624-bb"></a><span class="identifier">back</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
604 <p><span class="bold"><strong>Requires</strong></span>: !empty()</p>
605 <p><span class="bold"><strong>Effects</strong></span>: Returns a reference to the last element of the container.</p>
606 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
607 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
608 </li>
609 <li class="listitem">
610 <pre class="literallayout"><span class="identifier">const_reference</span> <a name="idm45666066501936-bb"></a><span class="identifier">back</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
611 <p><span class="bold"><strong>Requires</strong></span>: !empty()</p>
612 <p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the last element of the container.</p>
613 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
614 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
615 </li>
616 <li class="listitem">
617 <pre class="literallayout"><span class="identifier">reference</span> <a name="idm45666066497248-bb"></a><span class="keyword">operator</span><span class="special">[</span><span class="special">]</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
618 <p><span class="bold"><strong>Requires</strong></span>: size() &gt; n.</p>
619 <p><span class="bold"><strong>Effects</strong></span>: Returns a reference to the nth element from the beginning of the container.</p>
620 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
621 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
622 </li>
623 <li class="listitem">
624 <pre class="literallayout"><span class="identifier">const_reference</span> <a name="idm45666066491856-bb"></a><span class="keyword">operator</span><span class="special">[</span><span class="special">]</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
625 <p><span class="bold"><strong>Requires</strong></span>: size() &gt; n.</p>
626 <p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the nth element from the beginning of the container.</p>
627 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
628 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
629 </li>
630 <li class="listitem">
631 <pre class="literallayout"><span class="identifier">reference</span> <a name="idm45666066486464-bb"></a><span class="identifier">at</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre>
632 <p><span class="bold"><strong>Requires</strong></span>: size() &gt; n.</p>
633 <p><span class="bold"><strong>Effects</strong></span>: Returns a reference to the nth element from the beginning of the container.</p>
634 <p><span class="bold"><strong>Throws</strong></span>: std::range_error if n &gt;= size()</p>
635 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
636 </li>
637 <li class="listitem">
638 <pre class="literallayout"><span class="identifier">const_reference</span> <a name="idm45666066481328-bb"></a><span class="identifier">at</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
639 <p><span class="bold"><strong>Requires</strong></span>: size() &gt; n.</p>
640 <p><span class="bold"><strong>Effects</strong></span>: Returns a const reference to the nth element from the beginning of the container.</p>
641 <p><span class="bold"><strong>Throws</strong></span>: std::range_error if n &gt;= size()</p>
642 <p><span class="bold"><strong>Complexity</strong></span>: Constant. </p>
643 </li>
644 <li class="listitem">
645 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066475920-bb"></a><span class="keyword">operator</span><span class="special">+=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> s<span class="special">)</span><span class="special">;</span></pre>
646 <p><span class="bold"><strong>Effects</strong></span>: Calls append(str.data, str.size()).</p>
647 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
648 </li>
649 <li class="listitem">
650 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
651   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066471808-bb"></a><span class="keyword">operator</span><span class="special">+=</span><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">)</span><span class="special">;</span></pre>
652 <p><span class="bold"><strong>Effects</strong></span>: Same as <code class="computeroutput">return append(sv)</code>. </p>
653 </li>
654 <li class="listitem">
655 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066467392-bb"></a><span class="keyword">operator</span><span class="special">+=</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">)</span><span class="special">;</span></pre>
656 <p><span class="bold"><strong>Effects</strong></span>: Calls append(s).</p>
657 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
658 </li>
659 <li class="listitem">
660 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066463744-bb"></a><span class="keyword">operator</span><span class="special">+=</span><span class="special">(</span><span class="identifier">CharT</span> c<span class="special">)</span><span class="special">;</span></pre>
661 <p><span class="bold"><strong>Effects</strong></span>: Calls append(1, c).</p>
662 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
663 </li>
664 <li class="listitem">
665 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066460096-bb"></a><span class="keyword">operator</span><span class="special">+=</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">CharT</span> <span class="special">&gt;</span> il<span class="special">)</span><span class="special">;</span></pre>
666 <p><span class="bold"><strong>Effects</strong></span>: Returns append(il) </p>
667 </li>
668 <li class="listitem">
669 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066457280-bb"></a><span class="identifier">append</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> s<span class="special">)</span><span class="special">;</span></pre>
670 <p><span class="bold"><strong>Effects</strong></span>: Calls append(str.data(), str.size()).</p>
671 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
672 </li>
673 <li class="listitem">
674 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
675   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066453168-bb"></a><span class="identifier">append</span><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">)</span><span class="special">;</span></pre>
676 <p><span class="bold"><strong>Effects</strong></span>: Same as return append(sv.data(), sv.size()). </p>
677 </li>
678 <li class="listitem">
679 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
680 <a name="idm45666066449168-bb"></a><span class="identifier">append</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos<span class="special">,</span> <span class="identifier">size_type</span> n <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span><span class="special">;</span></pre>
681 <p><span class="bold"><strong>Requires</strong></span>: pos &lt;= str.size()</p>
682 <p><span class="bold"><strong>Effects</strong></span>: Determines the effective length rlen of the string to append as the smaller of n and str.size() - pos and calls append(str.data() + pos, rlen).</p>
683 <p><span class="bold"><strong>Throws</strong></span>: If memory allocation throws and out_of_range if pos &gt; str.size()</p>
684 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
685 </li>
686 <li class="listitem">
687 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066441536-bb"></a><span class="identifier">append</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre>
688 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least n elements of CharT.</p>
689 <p><span class="bold"><strong>Effects</strong></span>: The function replaces the string controlled by *this with a string of length size() + n whose irst size() elements are a copy of the original string controlled by *this and whose remaining elements are a copy of the initial n elements of s.</p>
690 <p><span class="bold"><strong>Throws</strong></span>: If memory allocation throws length_error if size() + n &gt; max_size().</p>
691 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
692 </li>
693 <li class="listitem">
694 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066435200-bb"></a><span class="identifier">append</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">)</span><span class="special">;</span></pre>
695 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least traits::length(s) + 1 elements of CharT.</p>
696 <p><span class="bold"><strong>Effects</strong></span>: Calls append(s, traits::length(s)).</p>
697 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
698 </li>
699 <li class="listitem">
700 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066430624-bb"></a><span class="identifier">append</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="identifier">CharT</span> c<span class="special">)</span><span class="special">;</span></pre>
701 <p><span class="bold"><strong>Effects</strong></span>: Equivalent to append(basic_string(n, c)).</p>
702 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
703 </li>
704 <li class="listitem">
705 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIter<span class="special">&gt;</span> 
706   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066426256-bb"></a><span class="identifier">append</span><span class="special">(</span><span class="identifier">InputIter</span> first<span class="special">,</span> <span class="identifier">InputIter</span> last<span class="special">)</span><span class="special">;</span></pre>
707 <p><span class="bold"><strong>Requires</strong></span>: [first,last) is a valid range.</p>
708 <p><span class="bold"><strong>Effects</strong></span>: Equivalent to append(basic_string(first, last)).</p>
709 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
710 </li>
711 <li class="listitem">
712 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066420176-bb"></a><span class="identifier">append</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">CharT</span> <span class="special">&gt;</span> il<span class="special">)</span><span class="special">;</span></pre>
713 <p><span class="bold"><strong>Effects</strong></span>: Returns append(il.begin(), il.size()). </p>
714 </li>
715 <li class="listitem">
716 <pre class="literallayout"><span class="keyword">void</span> <a name="idm45666066417328-bb"></a><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">CharT</span> c<span class="special">)</span><span class="special">;</span></pre>
717 <p><span class="bold"><strong>Effects</strong></span>: Equivalent to append(static_cast&lt;size_type&gt;(1), c). </p>
718 </li>
719 <li class="listitem">
720 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066414784-bb"></a><span class="identifier">assign</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> s<span class="special">)</span><span class="special">;</span></pre>
721 <p><span class="bold"><strong>Effects</strong></span>: Equivalent to assign(str, 0, npos).</p>
722 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
723 </li>
724 <li class="listitem">
725 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
726   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066410672-bb"></a><span class="identifier">assign</span><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">)</span><span class="special">;</span></pre>
727 <p><span class="bold"><strong>Effects</strong></span>: Equivalent to return assign(sv.data(), sv.size()).</p>
728 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
729 </li>
730 <li class="listitem">
731 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066405824-bb"></a><span class="identifier">assign</span><span class="special">(</span><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;&amp;</span> ms<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
732 <p><span class="bold"><strong>Effects</strong></span>: The function replaces the string controlled by *this with a string of length str.size() whose elements are a copy of the string controlled by str. Leaves str in a valid but unspecified state.</p>
733 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
734 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
735 </li>
736 <li class="listitem">
737 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066400592-bb"></a><span class="identifier">assign</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre>
738 <p><span class="bold"><strong>Requires</strong></span>: pos &lt;= str.size()</p>
739 <p><span class="bold"><strong>Effects</strong></span>: Determines the effective length rlen of the string to assign as the smaller of n and str.size() - pos and calls assign(str.data() + pos rlen).</p>
740 <p><span class="bold"><strong>Throws</strong></span>: If memory allocation throws or out_of_range if pos &gt; str.size().</p>
741 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
742 </li>
743 <li class="listitem">
744 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066393248-bb"></a><span class="identifier">assign</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre>
745 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least n elements of CharT.</p>
746 <p><span class="bold"><strong>Effects</strong></span>: Replaces the string controlled by *this with a string of length n whose elements are a copy of those pointed to by s.</p>
747 <p><span class="bold"><strong>Throws</strong></span>: If memory allocation throws or length_error if n &gt; max_size().</p>
748 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
749 </li>
750 <li class="listitem">
751 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066387040-bb"></a><span class="identifier">assign</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">)</span><span class="special">;</span></pre>
752 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least traits::length(s) + 1 elements of CharT.</p>
753 <p><span class="bold"><strong>Effects</strong></span>: Calls assign(s, traits::length(s)).</p>
754 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
755 </li>
756 <li class="listitem">
757 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066382464-bb"></a><span class="identifier">assign</span><span class="special">(</span><span class="identifier">size_type</span> n<span class="special">,</span> <span class="identifier">CharT</span> c<span class="special">)</span><span class="special">;</span></pre>
758 <p><span class="bold"><strong>Effects</strong></span>: Equivalent to assign(basic_string(n, c)).</p>
759 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
760 </li>
761 <li class="listitem">
762 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066378096-bb"></a><span class="identifier">assign</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> first<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> last<span class="special">)</span><span class="special">;</span></pre>
763 <p><span class="bold"><strong>Effects</strong></span>: Equivalent to assign(basic_string(first, last)). <span class="bold"><strong>Returns</strong></span>: *this </p>
764 </li>
765 <li class="listitem">
766 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIter<span class="special">&gt;</span> 
767   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066373856-bb"></a><span class="identifier">assign</span><span class="special">(</span><span class="identifier">InputIter</span> first<span class="special">,</span> <span class="identifier">InputIter</span> last<span class="special">)</span><span class="special">;</span></pre>
768 <p><span class="bold"><strong>Effects</strong></span>: Equivalent to assign(basic_string(first, last)).</p>
769 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
770 </li>
771 <li class="listitem">
772 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066368640-bb"></a><span class="identifier">assign</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">CharT</span> <span class="special">&gt;</span> il<span class="special">)</span><span class="special">;</span></pre>
773 <p><span class="bold"><strong>Effects</strong></span>: Returns assign(il.begin(), il.size()). </p>
774 </li>
775 <li class="listitem">
776 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066365792-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">size_type</span> pos<span class="special">,</span> <span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> s<span class="special">)</span><span class="special">;</span></pre>
777 <p><span class="bold"><strong>Requires</strong></span>: pos &lt;= size().</p>
778 <p><span class="bold"><strong>Effects</strong></span>: Calls insert(pos, str.data(), str.size()).</p>
779 <p><span class="bold"><strong>Throws</strong></span>: If memory allocation throws or out_of_range if pos &gt; size().</p>
780 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
781 </li>
782 <li class="listitem">
783 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
784 <a name="idm45666066359232-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">size_type</span> pos1<span class="special">,</span> <span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos2<span class="special">,</span> 
785        <span class="identifier">size_type</span> n <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span><span class="special">;</span></pre>
786 <p><span class="bold"><strong>Requires</strong></span>: pos1 &lt;= size() and pos2 &lt;= str.size()</p>
787 <p><span class="bold"><strong>Effects</strong></span>: Determines the effective length rlen of the string to insert as the smaller of n and str.size() - pos2 and calls insert(pos1, str.data() + pos2, rlen).</p>
788 <p><span class="bold"><strong>Throws</strong></span>: If memory allocation throws or out_of_range if pos1 &gt; size() or pos2 &gt; str.size().</p>
789 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
790 </li>
791 <li class="listitem">
792 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066350864-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">size_type</span> pos<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre>
793 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least n elements of CharT and pos &lt;= size().</p>
794 <p><span class="bold"><strong>Effects</strong></span>: Replaces the string controlled by *this with a string of length size() + n whose first pos elements are a copy of the initial elements of the original string controlled by *this and whose next n elements are a copy of the elements in s and whose remaining elements are a copy of the remaining elements of the original string controlled by *this.</p>
795 <p><span class="bold"><strong>Throws</strong></span>: If memory allocation throws, out_of_range if pos &gt; size() or length_error if size() + n &gt; max_size().</p>
796 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
797 </li>
798 <li class="listitem">
799 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066343664-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">size_type</span> pos<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">)</span><span class="special">;</span></pre>
800 <p><span class="bold"><strong>Requires</strong></span>: pos &lt;= size() and s points to an array of at least traits::length(s) + 1 elements of CharT</p>
801 <p><span class="bold"><strong>Effects</strong></span>: Calls insert(pos, s, traits::length(s)).</p>
802 <p><span class="bold"><strong>Throws</strong></span>: If memory allocation throws, out_of_range if pos &gt; size() length_error if size() &gt; max_size() - Traits::length(s)</p>
803 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
804 </li>
805 <li class="listitem">
806 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066337424-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">size_type</span> pos<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">,</span> <span class="identifier">CharT</span> c<span class="special">)</span><span class="special">;</span></pre>
807 <p><span class="bold"><strong>Effects</strong></span>: Equivalent to insert(pos, basic_string(n, c)).</p>
808 <p><span class="bold"><strong>Throws</strong></span>: If memory allocation throws, out_of_range if pos &gt; size() length_error if size() &gt; max_size() - n</p>
809 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
810 </li>
811 <li class="listitem">
812 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
813   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066331440-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">size_type</span> pos<span class="special">,</span> <span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">)</span><span class="special">;</span></pre>
814 <p><span class="bold"><strong>Effects</strong></span>: Same as <code class="computeroutput">return insert(pos, sv.data(), sv.size())</code>. </p>
815 </li>
816 <li class="listitem">
817 <pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45666066326304-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> p<span class="special">,</span> <span class="identifier">CharT</span> c<span class="special">)</span><span class="special">;</span></pre>
818 <p><span class="bold"><strong>Requires</strong></span>: p is a valid iterator on *this.</p>
819 <p><span class="bold"><strong>Effects</strong></span>: inserts a copy of c before the character referred to by p.</p>
820 <p><span class="bold"><strong>Returns</strong></span>: An iterator which refers to the copy of the inserted character. </p>
821 </li>
822 <li class="listitem">
823 <pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45666066321296-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> p<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">,</span> <span class="identifier">CharT</span> c<span class="special">)</span><span class="special">;</span></pre>
824 <p><span class="bold"><strong>Requires</strong></span>: p is a valid iterator on *this.</p>
825 <p><span class="bold"><strong>Effects</strong></span>: Inserts n copies of c before the character referred to by p.</p>
826 <p><span class="bold"><strong>Returns</strong></span>: an iterator to the first inserted element or p if n is 0. </p>
827 </li>
828 <li class="listitem">
829 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIter<span class="special">&gt;</span> 
830   <span class="identifier">iterator</span> <a name="idm45666066315600-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> p<span class="special">,</span> <span class="identifier">InputIter</span> first<span class="special">,</span> <span class="identifier">InputIter</span> last<span class="special">)</span><span class="special">;</span></pre>
831 <p><span class="bold"><strong>Requires</strong></span>: p is a valid iterator on *this. [first,last) is a valid range.</p>
832 <p><span class="bold"><strong>Effects</strong></span>: Equivalent to insert(p - begin(), basic_string(first, last)).</p>
833 <p><span class="bold"><strong>Returns</strong></span>: an iterator to the first inserted element or p if first == last. </p>
834 </li>
835 <li class="listitem">
836 <pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45666066309024-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> p<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">CharT</span> <span class="special">&gt;</span> il<span class="special">)</span><span class="special">;</span></pre>
837 <p><span class="bold"><strong>Effects</strong></span>: As if by insert(p, il.begin(), il.end()).</p>
838 <p><span class="bold"><strong>Returns</strong></span>: An iterator which refers to the copy of the first inserted character, or p if i1 is empty. </p>
839 </li>
840 <li class="listitem">
841 <pre class="literallayout"><span class="keyword">void</span> <a name="idm45666066304848-bb"></a><span class="identifier">pop_back</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
842 <p><span class="bold"><strong>Effects</strong></span>: Removes the last element from the container.</p>
843 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
844 <p><span class="bold"><strong>Complexity</strong></span>: Constant time. </p>
845 </li>
846 <li class="listitem">
847 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066301024-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">size_type</span> n <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span><span class="special">;</span></pre>
848 <p><span class="bold"><strong>Requires</strong></span>: pos &lt;= size()</p>
849 <p><span class="bold"><strong>Effects</strong></span>: Determines the effective length xlen of the string to be removed as the smaller of n and size() - pos. The function then replaces the string controlled by *this with a string of length size() - xlen whose first pos elements are a copy of the initial elements of the original string controlled by *this, and whose remaining elements are a copy of the elements of the original string controlled by *this beginning at position pos + xlen.</p>
850 <p><span class="bold"><strong>Throws</strong></span>: out_of_range if pos &gt; size().</p>
851 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
852 </li>
853 <li class="listitem">
854 <pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45666066293984-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> p<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
855 <p><span class="bold"><strong>Effects</strong></span>: Removes the character referred to by p.</p>
856 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
857 <p><span class="bold"><strong>Returns</strong></span>: An iterator which points to the element immediately following p prior to the element being erased. If no such element exists, end() is returned. </p>
858 </li>
859 <li class="listitem">
860 <pre class="literallayout"><span class="identifier">iterator</span> <a name="idm45666066289344-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> first<span class="special">,</span> <span class="identifier">const_iterator</span> last<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
861 <p><span class="bold"><strong>Requires</strong></span>: first and last are valid iterators on *this, defining a range [first,last).</p>
862 <p><span class="bold"><strong>Effects</strong></span>: Removes the characters in the range [first,last).</p>
863 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
864 <p><span class="bold"><strong>Returns</strong></span>: An iterator which points to the element pointed to by last prior to the other elements being erased. If no such element exists, end() is returned. </p>
865 </li>
866 <li class="listitem">
867 <pre class="literallayout"><span class="keyword">void</span> <a name="idm45666066283104-bb"></a><span class="identifier">clear</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
868 <p><span class="bold"><strong>Effects</strong></span>: Erases all the elements of the vector.</p>
869 <p><span class="bold"><strong>Throws</strong></span>: Nothing.</p>
870 <p><span class="bold"><strong>Complexity</strong></span>: Linear to the number of elements in the vector. </p>
871 </li>
872 <li class="listitem">
873 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066279248-bb"></a><span class="identifier">replace</span><span class="special">(</span><span class="identifier">size_type</span> pos1<span class="special">,</span> <span class="identifier">size_type</span> n1<span class="special">,</span> <span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> str<span class="special">)</span><span class="special">;</span></pre>
874 <p><span class="bold"><strong>Requires</strong></span>: pos1 &lt;= size().</p>
875 <p><span class="bold"><strong>Effects</strong></span>: Calls replace(pos1, n1, str.data(), str.size()).</p>
876 <p><span class="bold"><strong>Throws</strong></span>: if memory allocation throws or out_of_range if pos1 &gt; size().</p>
877 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
878 </li>
879 <li class="listitem">
880 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
881   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
882   <a name="idm45666066272000-bb"></a><span class="identifier">replace</span><span class="special">(</span><span class="identifier">size_type</span> pos1<span class="special">,</span> <span class="identifier">size_type</span> n1<span class="special">,</span> <span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">)</span><span class="special">;</span></pre>
883 <p><span class="bold"><strong>Effects</strong></span>: Calls <code class="computeroutput">return replace(pos1, n1, sv.data(), sv.size());</code>. </p>
884 </li>
885 <li class="listitem">
886 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
887 <a name="idm45666066266176-bb"></a><span class="identifier">replace</span><span class="special">(</span><span class="identifier">size_type</span> pos1<span class="special">,</span> <span class="identifier">size_type</span> n1<span class="special">,</span> <span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> str<span class="special">,</span> 
888         <span class="identifier">size_type</span> pos2<span class="special">,</span> <span class="identifier">size_type</span> n2 <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span><span class="special">;</span></pre>
889 <p><span class="bold"><strong>Requires</strong></span>: pos1 &lt;= size() and pos2 &lt;= str.size().</p>
890 <p><span class="bold"><strong>Effects</strong></span>: Determines the effective length rlen of the string to be inserted as the smaller of n2 and str.size() - pos2 and calls replace(pos1, n1, str.data() + pos2, rlen).</p>
891 <p><span class="bold"><strong>Throws</strong></span>: if memory allocation throws, out_of_range if pos1 &gt; size() or pos2 &gt; str.size().</p>
892 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
893 </li>
894 <li class="listitem">
895 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
896   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
897   <a name="idm45666066257104-bb"></a><span class="identifier">replace</span><span class="special">(</span><span class="identifier">size_type</span> pos1<span class="special">,</span> <span class="identifier">size_type</span> n1<span class="special">,</span> <span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">,</span> 
898           <span class="identifier">size_type</span> pos2<span class="special">,</span> <span class="identifier">size_type</span> n2 <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span><span class="special">;</span></pre>
899 <p><span class="bold"><strong>Throws</strong></span>: out_of_range if pos1 &gt; size() or pos2 &gt; sv.size().</p>
900 <p><span class="bold"><strong>Effects</strong></span>: Determines the effective length rlen of the string to be inserted as the smaller of n2 and sv.size() - pos2 and calls <code class="computeroutput">replace(pos1, n1, sv.data() + pos2, rlen)</code>.</p>
901 <p><span class="bold"><strong>Returns</strong></span>: *this. </p>
902 </li>
903 <li class="listitem">
904 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
905 <a name="idm45666066247776-bb"></a><span class="identifier">replace</span><span class="special">(</span><span class="identifier">size_type</span> pos1<span class="special">,</span> <span class="identifier">size_type</span> n1<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> n2<span class="special">)</span><span class="special">;</span></pre>
906 <p><span class="bold"><strong>Requires</strong></span>: pos1 &lt;= size() and s points to an array of at least n2 elements of CharT.</p>
907 <p><span class="bold"><strong>Effects</strong></span>: Determines the effective length xlen of the string to be removed as the smaller of n1 and size() - pos1. If size() - xlen &gt;= max_size() - n2 throws length_error. Otherwise, the function replaces the string controlled by *this with a string of length size() - xlen + n2 whose first pos1 elements are a copy of the initial elements of the original string controlled by *this, whose next n2 elements are a copy of the initial n2 elements of s, and whose remaining elements are a copy of the elements of the original string controlled by *this beginning at position pos + xlen.</p>
908 <p><span class="bold"><strong>Throws</strong></span>: if memory allocation throws, out_of_range if pos1 &gt; size() or length_error if the length of the resulting string would exceed max_size()</p>
909 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
910 </li>
911 <li class="listitem">
912 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066239616-bb"></a><span class="identifier">replace</span><span class="special">(</span><span class="identifier">size_type</span> pos<span class="special">,</span> <span class="identifier">size_type</span> n1<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">)</span><span class="special">;</span></pre>
913 <p><span class="bold"><strong>Requires</strong></span>: pos1 &lt;= size() and s points to an array of at least n2 elements of CharT.</p>
914 <p><span class="bold"><strong>Effects</strong></span>: Determines the effective length xlen of the string to be removed as the smaller of n1 and size() - pos1. If size() - xlen &gt;= max_size() - n2 throws length_error. Otherwise, the function replaces the string controlled by *this with a string of length size() - xlen + n2 whose first pos1 elements are a copy of the initial elements of the original string controlled by *this, whose next n2 elements are a copy of the initial n2 elements of s, and whose remaining elements are a copy of the elements of the original string controlled by *this beginning at position pos + xlen.</p>
915 <p><span class="bold"><strong>Throws</strong></span>: if memory allocation throws, out_of_range if pos1 &gt; size() or length_error if the length of the resulting string would exceed max_size()</p>
916 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
917 </li>
918 <li class="listitem">
919 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066232144-bb"></a><span class="identifier">replace</span><span class="special">(</span><span class="identifier">size_type</span> pos1<span class="special">,</span> <span class="identifier">size_type</span> n1<span class="special">,</span> <span class="identifier">size_type</span> n2<span class="special">,</span> <span class="identifier">CharT</span> c<span class="special">)</span><span class="special">;</span></pre>
920 <p><span class="bold"><strong>Requires</strong></span>: pos1 &lt;= size().</p>
921 <p><span class="bold"><strong>Effects</strong></span>: Equivalent to replace(pos1, n1, basic_string(n2, c)).</p>
922 <p><span class="bold"><strong>Throws</strong></span>: if memory allocation throws, out_of_range if pos1 &gt; size() or length_error if the length of the resulting string would exceed max_size()</p>
923 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
924 </li>
925 <li class="listitem">
926 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
927 <a name="idm45666066224576-bb"></a><span class="identifier">replace</span><span class="special">(</span><span class="identifier">const_iterator</span> i1<span class="special">,</span> <span class="identifier">const_iterator</span> i2<span class="special">,</span> <span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> str<span class="special">)</span><span class="special">;</span></pre>
928 <p><span class="bold"><strong>Requires</strong></span>: [begin(),i1) and [i1,i2) are valid ranges.</p>
929 <p><span class="bold"><strong>Effects</strong></span>: Calls replace(i1 - begin(), i2 - i1, str).</p>
930 <p><span class="bold"><strong>Throws</strong></span>: if memory allocation throws</p>
931 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
932 </li>
933 <li class="listitem">
934 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
935 <a name="idm45666066217328-bb"></a><span class="identifier">replace</span><span class="special">(</span><span class="identifier">const_iterator</span> i1<span class="special">,</span> <span class="identifier">const_iterator</span> i2<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">)</span><span class="special">;</span></pre>
936 <p><span class="bold"><strong>Requires</strong></span>: [begin(),i1) and [i1,i2) are valid ranges and s points to an array of at least n elements</p>
937 <p><span class="bold"><strong>Effects</strong></span>: Calls replace(i1 - begin(), i2 - i1, s, n).</p>
938 <p><span class="bold"><strong>Throws</strong></span>: if memory allocation throws</p>
939 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
940 </li>
941 <li class="listitem">
942 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> <a name="idm45666066209792-bb"></a><span class="identifier">replace</span><span class="special">(</span><span class="identifier">const_iterator</span> i1<span class="special">,</span> <span class="identifier">const_iterator</span> i2<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">)</span><span class="special">;</span></pre>
943 <p><span class="bold"><strong>Requires</strong></span>: [begin(),i1) and [i1,i2) are valid ranges and s points to an array of at least traits::length(s) + 1 elements of CharT.</p>
944 <p><span class="bold"><strong>Effects</strong></span>: Calls replace(i1 - begin(), i2 - i1, s, traits::length(s)).</p>
945 <p><span class="bold"><strong>Throws</strong></span>: if memory allocation throws</p>
946 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
947 </li>
948 <li class="listitem">
949 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
950 <a name="idm45666066202896-bb"></a><span class="identifier">replace</span><span class="special">(</span><span class="identifier">const_iterator</span> i1<span class="special">,</span> <span class="identifier">const_iterator</span> i2<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">,</span> <span class="identifier">CharT</span> c<span class="special">)</span><span class="special">;</span></pre>
951 <p><span class="bold"><strong>Requires</strong></span>: [begin(),i1) and [i1,i2) are valid ranges.</p>
952 <p><span class="bold"><strong>Effects</strong></span>: Calls replace(i1 - begin(), i2 - i1, basic_string(n, c)).</p>
953 <p><span class="bold"><strong>Throws</strong></span>: if memory allocation throws</p>
954 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
955 </li>
956 <li class="listitem">
957 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> InputIter<span class="special">&gt;</span> 
958   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
959   <a name="idm45666066195392-bb"></a><span class="identifier">replace</span><span class="special">(</span><span class="identifier">const_iterator</span> i1<span class="special">,</span> <span class="identifier">const_iterator</span> i2<span class="special">,</span> <span class="identifier">InputIter</span> j1<span class="special">,</span> <span class="identifier">InputIter</span> j2<span class="special">)</span><span class="special">;</span></pre>
960 <p><span class="bold"><strong>Requires</strong></span>: [begin(),i1), [i1,i2) and [j1,j2) are valid ranges.</p>
961 <p><span class="bold"><strong>Effects</strong></span>: Calls replace(i1 - begin(), i2 - i1, basic_string(j1, j2)).</p>
962 <p><span class="bold"><strong>Throws</strong></span>: if memory allocation throws</p>
963 <p><span class="bold"><strong>Returns</strong></span>: *this </p>
964 </li>
965 <li class="listitem">
966 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
967   <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
968   <a name="idm45666066187040-bb"></a><span class="identifier">replace</span><span class="special">(</span><span class="identifier">const_iterator</span> i1<span class="special">,</span> <span class="identifier">const_iterator</span> i2<span class="special">,</span> 
969           <span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">)</span><span class="special">;</span></pre>
970 <p><span class="bold"><strong>Requires</strong></span>: [begin(), i1) and [i1, i2) are valid ranges.</p>
971 <p><span class="bold"><strong>Effects</strong></span>: Calls <code class="computeroutput">replace(i1 - begin(), i2 - i1, sv).</code>.</p>
972 <p><span class="bold"><strong>Returns</strong></span>: *this. </p>
973 </li>
974 <li class="listitem">
975 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> 
976 <a name="idm45666066179504-bb"></a><span class="identifier">replace</span><span class="special">(</span><span class="identifier">const_iterator</span> i1<span class="special">,</span> <span class="identifier">const_iterator</span> i2<span class="special">,</span> 
977         <span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span><span class="special">&lt;</span> <span class="identifier">CharT</span> <span class="special">&gt;</span> il<span class="special">)</span><span class="special">;</span></pre>
978 <p><span class="bold"><strong>Requires</strong></span>: [begin(), i1) and [i1, i2) are valid ranges.</p>
979 <p><span class="bold"><strong>Effects</strong></span>: Calls replace(i1 - begin(), i2 - i1, il.begin(), il.size()).</p>
980 <p><span class="bold"><strong>Returns</strong></span>: *this. </p>
981 </li>
982 <li class="listitem">
983 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066173536-bb"></a><span class="identifier">copy</span><span class="special">(</span><span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
984 <p><span class="bold"><strong>Requires</strong></span>: pos &lt;= size()</p>
985 <p><span class="bold"><strong>Effects</strong></span>: Determines the effective length rlen of the string to copy as the smaller of n and size() - pos. s shall designate an array of at least rlen elements. The function then replaces the string designated by s with a string of length rlen whose elements are a copy of the string controlled by *this beginning at position pos. The function does not append a null object to the string designated by s.</p>
986 <p><span class="bold"><strong>Throws</strong></span>: if memory allocation throws, out_of_range if pos &gt; size().</p>
987 <p><span class="bold"><strong>Returns</strong></span>: rlen </p>
988 </li>
989 <li class="listitem">
990 <pre class="literallayout"><span class="keyword">void</span> <a name="idm45666066166112-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> x<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">(</span><span class="identifier">allocator_traits_type</span><span class="special">::</span><span class="identifier">propagate_on_container_swap</span><span class="special">::</span><span class="identifier">value</span><span class="special">||</span><span class="identifier">allocator_traits_type</span><span class="special">::</span><span class="identifier">is_always_equal</span><span class="special">::</span><span class="identifier">value</span><span class="special">)</span><span class="special">)</span><span class="special">;</span></pre>
991 <p><span class="bold"><strong>Effects</strong></span>: *this contains the same sequence of characters that was in s, s contains the same sequence of characters that was in *this.</p>
992 <p><span class="bold"><strong>Throws</strong></span>: Nothing </p>
993 </li>
994 <li class="listitem">
995 <pre class="literallayout"><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> <a name="idm45666066161984-bb"></a><span class="identifier">c_str</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
996 <p><span class="bold"><strong>Requires</strong></span>: The program shall not alter any of the values stored in the character array.</p>
997 <p><span class="bold"><strong>Returns</strong></span>: A pointer p such that p + i == &amp;operator[](i) for each i in [0,size()].</p>
998 <p><span class="bold"><strong>Complexity</strong></span>: constant time. </p>
999 </li>
1000 <li class="listitem">
1001 <pre class="literallayout"><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> <a name="idm45666066158064-bb"></a><span class="identifier">data</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
1002 <p><span class="bold"><strong>Requires</strong></span>: The program shall not alter any of the values stored in the character array.</p>
1003 <p><span class="bold"><strong>Returns</strong></span>: A pointer p such that p + i == &amp;operator[](i) for each i in [0,size()].</p>
1004 <p><span class="bold"><strong>Complexity</strong></span>: constant time. </p>
1005 </li>
1006 <li class="listitem">
1007 <pre class="literallayout"><span class="identifier">CharT</span> <span class="special">*</span> <a name="idm45666066154144-bb"></a><span class="identifier">data</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
1008 <p><span class="bold"><strong>Returns</strong></span>: A pointer p such that p + i == &amp;operator[](i) for each i in [0,size()].</p>
1009 <p><span class="bold"><strong>Complexity</strong></span>: constant time. </p>
1010 </li>
1011 <li class="listitem">
1012 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
1013   <a name="idm45666066151136-bb"></a><span class="keyword">operator</span> <span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
1014 <p><span class="bold"><strong>Returns</strong></span>: a string_view to the characters in the string.</p>
1015 <p><span class="bold"><strong>Complexity</strong></span>: constant time. </p>
1016 </li>
1017 <li class="listitem">
1018 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> BasicStringView<span class="special">&gt;</span> <span class="identifier">BasicStringView</span> <a name="idm45666066146992-bb"></a><span class="identifier">to_view</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
1019 <p><span class="bold"><strong>Returns</strong></span>: a string_view to the characters in the string.</p>
1020 <p><span class="bold"><strong>Complexity</strong></span>: constant time.</p>
1021 <p><span class="bold"><strong>Note</strong></span>: This function is available to write portable code for compilers that don't support templated conversion operators. </p>
1022 </li>
1023 <li class="listitem">
1024 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066142224-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1025 <p><span class="bold"><strong>Effects</strong></span>: Determines the lowest position xpos, if possible, such that both of the following conditions hold: 1) pos &lt;= xpos and xpos + str.size() &lt;= size(); 2) traits::eq(at(xpos+I), str.at(I)) for all elements I of the string controlled by str.</p>
1026 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1027 <p><span class="bold"><strong>Returns</strong></span>: xpos if the function can determine such a value for xpos. Otherwise, returns npos. </p>
1028 </li>
1029 <li class="listitem">
1030 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
1031   <span class="identifier">size_type</span> <a name="idm45666066136032-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1032 <p><span class="bold"><strong>Effects</strong></span>: Determines the lowest position xpos, if possible, such that both of the following conditions hold: 1) pos &lt;= xpos and xpos + sv.size() &lt;= size(); 2) traits::eq(at(xpos+I), sv.at(I)) for all elements I of the string controlled by sv.</p>
1033 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1034 <p><span class="bold"><strong>Returns</strong></span>: xpos if the function can determine such a value for xpos. Otherwise, returns npos. </p>
1035 </li>
1036 <li class="listitem">
1037 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066129120-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1038 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least n elements of CharT.</p>
1039 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1040 <p><span class="bold"><strong>Returns</strong></span>: find(basic_string&lt;CharT,traits,allocator_type&gt;(s,n),pos). </p>
1041 </li>
1042 <li class="listitem">
1043 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066123184-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1044 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least traits::length(s) + 1 elements of CharT.</p>
1045 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1046 <p><span class="bold"><strong>Returns</strong></span>: find(basic_string(s), pos). </p>
1047 </li>
1048 <li class="listitem">
1049 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066117648-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">CharT</span> c<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1050 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1051 <p><span class="bold"><strong>Returns</strong></span>: find(basic_string&lt;CharT,traits,allocator_type&gt;(1,c), pos). </p>
1052 </li>
1053 <li class="listitem">
1054 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066112992-bb"></a><span class="identifier">rfind</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> str<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1055 <p><span class="bold"><strong>Effects</strong></span>: Determines the highest position xpos, if possible, such that both of the following conditions obtain: a) xpos &lt;= pos and xpos + str.size() &lt;= size(); b) traits::eq(at(xpos+I), str.at(I)) for all elements I of the string controlled by str.</p>
1056 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1057 <p><span class="bold"><strong>Returns</strong></span>: xpos if the function can determine such a value for xpos. Otherwise, returns npos. </p>
1058 </li>
1059 <li class="listitem">
1060 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
1061   <span class="identifier">size_type</span> <a name="idm45666066106800-bb"></a><span class="identifier">rfind</span><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1062 <p><span class="bold"><strong>Effects</strong></span>: Determines the highest position xpos, if possible, such that both of the following conditions obtain: a) xpos &lt;= pos and xpos + sv.size() &lt;= size(); b) traits::eq(at(xpos+I), sv.at(I)) for all elements I of the string controlled by sv.</p>
1063 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1064 <p><span class="bold"><strong>Returns</strong></span>: xpos if the function can determine such a value for xpos. Otherwise, returns npos. </p>
1065 </li>
1066 <li class="listitem">
1067 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066099888-bb"></a><span class="identifier">rfind</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1068 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least n elements of CharT.</p>
1069 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1070 <p><span class="bold"><strong>Returns</strong></span>: rfind(basic_string(s, n), pos). </p>
1071 </li>
1072 <li class="listitem">
1073 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066093984-bb"></a><span class="identifier">rfind</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1074 <p><span class="bold"><strong>Requires</strong></span>: pos &lt;= size() and s points to an array of at least traits::length(s) + 1 elements of CharT.</p>
1075 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1076 <p><span class="bold"><strong>Returns</strong></span>: rfind(basic_string(s), pos). </p>
1077 </li>
1078 <li class="listitem">
1079 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066088432-bb"></a><span class="identifier">rfind</span><span class="special">(</span><span class="identifier">CharT</span> c<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1080 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1081 <p><span class="bold"><strong>Returns</strong></span>: rfind(basic_string&lt;CharT,traits,allocator_type&gt;(1,c),pos). </p>
1082 </li>
1083 <li class="listitem">
1084 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066083776-bb"></a><span class="identifier">find_first_of</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> str<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1085 <p><span class="bold"><strong>Effects</strong></span>: Determines the lowest position xpos, if possible, such that both of the following conditions obtain: a) pos &lt;= xpos and xpos &lt; size(); b) traits::eq(at(xpos), str.at(I)) for some element I of the string controlled by str.</p>
1086 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1087 <p><span class="bold"><strong>Returns</strong></span>: xpos if the function can determine such a value for xpos. Otherwise, returns npos. </p>
1088 </li>
1089 <li class="listitem">
1090 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
1091   <span class="identifier">size_type</span> <a name="idm45666066077600-bb"></a><span class="identifier">find_first_of</span><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">,</span> 
1092                           <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1093 <p><span class="bold"><strong>Effects</strong></span>: Determines the lowest position xpos, if possible, such that both of the following conditions obtain: a) pos &lt;= xpos and xpos &lt; size(); b) traits::eq(at(xpos), sv.at(I)) for some element I of the string controlled by sv.</p>
1094 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1095 <p><span class="bold"><strong>Returns</strong></span>: xpos if the function can determine such a value for xpos. Otherwise, returns npos. </p>
1096 </li>
1097 <li class="listitem">
1098 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066070704-bb"></a><span class="identifier">find_first_of</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1099 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least n elements of CharT.</p>
1100 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1101 <p><span class="bold"><strong>Returns</strong></span>: find_first_of(basic_string(s, n), pos). </p>
1102 </li>
1103 <li class="listitem">
1104 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066064784-bb"></a><span class="identifier">find_first_of</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1105 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least traits::length(s) + 1 elements of CharT.</p>
1106 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1107 <p><span class="bold"><strong>Returns</strong></span>: find_first_of(basic_string(s), pos). </p>
1108 </li>
1109 <li class="listitem">
1110 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066059248-bb"></a><span class="identifier">find_first_of</span><span class="special">(</span><span class="identifier">CharT</span> c<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1111 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least traits::length(s) + 1 elements of CharT.</p>
1112 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1113 <p><span class="bold"><strong>Returns</strong></span>: find_first_of(basic_string&lt;CharT,traits,allocator_type&gt;(1,c), pos). </p>
1114 </li>
1115 <li class="listitem">
1116 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066053680-bb"></a><span class="identifier">find_last_of</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> str<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1117 <p><span class="bold"><strong>Effects</strong></span>: Determines the highest position xpos, if possible, such that both of the following conditions obtain: a) xpos &lt;= pos and xpos &lt; size(); b) traits::eq(at(xpos), str.at(I)) for some element I of the string controlled by str.</p>
1118 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1119 <p><span class="bold"><strong>Returns</strong></span>: xpos if the function can determine such a value for xpos. Otherwise, returns npos. </p>
1120 </li>
1121 <li class="listitem">
1122 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
1123   <span class="identifier">size_type</span> <a name="idm45666066047504-bb"></a><span class="identifier">find_last_of</span><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">,</span> 
1124                          <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1125 <p><span class="bold"><strong>Effects</strong></span>: Determines the highest position xpos, if possible, such that both of the following conditions obtain: a) xpos &lt;= pos and xpos &lt; size(); b) traits::eq(at(xpos), str.at(I)) for some element I of the string controlled by str.</p>
1126 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1127 <p><span class="bold"><strong>Returns</strong></span>: xpos if the function can determine such a value for xpos. Otherwise, returns npos. </p>
1128 </li>
1129 <li class="listitem">
1130 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066040608-bb"></a><span class="identifier">find_last_of</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1131 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least n elements of CharT.</p>
1132 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1133 <p><span class="bold"><strong>Returns</strong></span>: find_last_of(basic_string(s, n), pos). </p>
1134 </li>
1135 <li class="listitem">
1136 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066034688-bb"></a><span class="identifier">find_last_of</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1137 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least traits::length(s) + 1 elements of CharT.</p>
1138 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1139 <p><span class="bold"><strong>Returns</strong></span>: find_last_of(basic_string&lt;CharT,traits,allocator_type&gt;(1,c),pos). </p>
1140 </li>
1141 <li class="listitem">
1142 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066029120-bb"></a><span class="identifier">find_last_of</span><span class="special">(</span><span class="identifier">CharT</span> c<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1143 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1144 <p><span class="bold"><strong>Returns</strong></span>: find_last_of(basic_string(s), pos). </p>
1145 </li>
1146 <li class="listitem">
1147 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066024496-bb"></a><span class="identifier">find_first_not_of</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> str<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1148 <p><span class="bold"><strong>Effects</strong></span>: Determines the lowest position xpos, if possible, such that both of the following conditions obtain: a) pos &lt;= xpos and xpos &lt; size(); b) traits::eq(at(xpos), str.at(I)) for no element I of the string controlled by str.</p>
1149 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1150 <p><span class="bold"><strong>Returns</strong></span>: xpos if the function can determine such a value for xpos. Otherwise, returns npos. </p>
1151 </li>
1152 <li class="listitem">
1153 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
1154   <span class="identifier">size_type</span> <a name="idm45666066018320-bb"></a><span class="identifier">find_first_not_of</span><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">,</span> 
1155                               <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1156 <p><span class="bold"><strong>Effects</strong></span>: Determines the lowest position xpos, if possible, such that both of the following conditions obtain: a) pos &lt;= xpos and xpos &lt; size(); b) traits::eq(at(xpos), sv.at(I)) for no element I of the string controlled by sv.</p>
1157 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1158 <p><span class="bold"><strong>Returns</strong></span>: xpos if the function can determine such a value for xpos. Otherwise, returns npos. </p>
1159 </li>
1160 <li class="listitem">
1161 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066011424-bb"></a><span class="identifier">find_first_not_of</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1162 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least traits::length(s) + 1 elements of CharT.</p>
1163 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1164 <p><span class="bold"><strong>Returns</strong></span>: find_first_not_of(basic_string(s, n), pos). </p>
1165 </li>
1166 <li class="listitem">
1167 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666066005472-bb"></a><span class="identifier">find_first_not_of</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1168 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least traits::length(s) + 1 elements of CharT.</p>
1169 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1170 <p><span class="bold"><strong>Returns</strong></span>: find_first_not_of(basic_string(s), pos). </p>
1171 </li>
1172 <li class="listitem">
1173 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666065999920-bb"></a><span class="identifier">find_first_not_of</span><span class="special">(</span><span class="identifier">CharT</span> c<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1174 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1175 <p><span class="bold"><strong>Returns</strong></span>: find_first_not_of(basic_string(1, c), pos). </p>
1176 </li>
1177 <li class="listitem">
1178 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666065995280-bb"></a><span class="identifier">find_last_not_of</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> str<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1179 <p><span class="bold"><strong>Effects</strong></span>: Determines the highest position xpos, if possible, such that both of the following conditions obtain: a) xpos &lt;= pos and xpos &lt; size(); b) traits::eq(at(xpos), str.at(I)) for no element I of the string controlled by str.</p>
1180 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1181 <p><span class="bold"><strong>Returns</strong></span>: xpos if the function can determine such a value for xpos. Otherwise, returns npos. </p>
1182 </li>
1183 <li class="listitem">
1184 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
1185   <span class="identifier">size_type</span> <a name="idm45666065989104-bb"></a><span class="identifier">find_last_not_of</span><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">,</span> 
1186                              <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1187 <p><span class="bold"><strong>Effects</strong></span>: Determines the highest position xpos, if possible, such that both of the following conditions obtain: a) xpos &lt;= pos and xpos &lt; size(); b) traits::eq(at(xpos), sv.at(I)) for no element I of the string controlled by sv.</p>
1188 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1189 <p><span class="bold"><strong>Returns</strong></span>: xpos if the function can determine such a value for xpos. Otherwise, returns npos. </p>
1190 </li>
1191 <li class="listitem">
1192 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666065982208-bb"></a><span class="identifier">find_last_not_of</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos<span class="special">,</span> <span class="identifier">size_type</span> n<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1193 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least n elements of CharT.</p>
1194 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1195 <p><span class="bold"><strong>Returns</strong></span>: find_last_not_of(basic_string(s, n), pos). </p>
1196 </li>
1197 <li class="listitem">
1198 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666065976288-bb"></a><span class="identifier">find_last_not_of</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1199 <p><span class="bold"><strong>Requires</strong></span>: s points to an array of at least traits::length(s) + 1 elements of CharT.</p>
1200 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1201 <p><span class="bold"><strong>Returns</strong></span>: find_last_not_of(basic_string(s), pos). </p>
1202 </li>
1203 <li class="listitem">
1204 <pre class="literallayout"><span class="identifier">size_type</span> <a name="idm45666065970736-bb"></a><span class="identifier">find_last_not_of</span><span class="special">(</span><span class="identifier">CharT</span> c<span class="special">,</span> <span class="identifier">size_type</span> pos <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1205 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1206 <p><span class="bold"><strong>Returns</strong></span>: find_last_not_of(basic_string(1, c), pos). </p>
1207 </li>
1208 <li class="listitem">
1209 <pre class="literallayout"><a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <a name="idm45666065966096-bb"></a><span class="identifier">substr</span><span class="special">(</span><span class="identifier">size_type</span> pos <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">size_type</span> n <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1210 <p><span class="bold"><strong>Requires</strong></span>: Requires: pos &lt;= size()</p>
1211 <p><span class="bold"><strong>Effects</strong></span>: Determines the effective length rlen of the string to copy as the smaller of n and size() - pos.</p>
1212 <p><span class="bold"><strong>Throws</strong></span>: If memory allocation throws or out_of_range if pos &gt; size().</p>
1213 <p><span class="bold"><strong>Returns</strong></span>: basic_string&lt;CharT,traits,allocator_type&gt;(data()+pos,rlen). </p>
1214 </li>
1215 <li class="listitem">
1216 <pre class="literallayout"><span class="keyword">int</span> <a name="idm45666065959184-bb"></a><span class="identifier">compare</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> str<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1217 <p><span class="bold"><strong>Effects</strong></span>: Determines the effective length rlen of the string to compare as the smaller of size() and str.size(). The function then compares the two strings by calling traits::compare(data(), str.data(), rlen).</p>
1218 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1219 <p><span class="bold"><strong>Returns</strong></span>: The nonzero result if the result of the comparison is nonzero. Otherwise, returns a value &lt; 0 if size() &lt; str.size(), a 0 value if size() == str.size(), and value &gt; 0 if size() &gt; str.size() </p>
1220 </li>
1221 <li class="listitem">
1222 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
1223   <span class="keyword">int</span> <a name="idm45666065953888-bb"></a><span class="identifier">compare</span><span class="special">(</span><span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1224 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1225 <p><span class="bold"><strong>Returns</strong></span>: compare(basic_string(sv)). </p>
1226 </li>
1227 <li class="listitem">
1228 <pre class="literallayout"><span class="keyword">int</span> <a name="idm45666065949072-bb"></a><span class="identifier">compare</span><span class="special">(</span><span class="identifier">size_type</span> pos1<span class="special">,</span> <span class="identifier">size_type</span> n1<span class="special">,</span> <span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> str<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1229 <p><span class="bold"><strong>Requires</strong></span>: pos1 &lt;= size()</p>
1230 <p><span class="bold"><strong>Effects</strong></span>: Determines the effective length rlen of the string to compare as the smaller of (this-&gt;size() - pos1), n1 and str.size(). The function then compares the two strings by calling traits::compare(data()+pos1, str.data(), rlen).</p>
1231 <p><span class="bold"><strong>Throws</strong></span>: out_of_range if pos1 &gt; size()</p>
1232 <p><span class="bold"><strong>Returns</strong></span>:basic_string(*this,pos1,n1).compare(str). </p>
1233 </li>
1234 <li class="listitem">
1235 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
1236   <span class="keyword">int</span> <a name="idm45666065941664-bb"></a><span class="identifier">compare</span><span class="special">(</span><span class="identifier">size_type</span> pos1<span class="special">,</span> <span class="identifier">size_type</span> n1<span class="special">,</span> 
1237               <span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1238 <p><span class="bold"><strong>Requires</strong></span>: pos1 &lt;= size()</p>
1239 <p><span class="bold"><strong>Throws</strong></span>: out_of_range if pos1 &gt; size()</p>
1240 <p><span class="bold"><strong>Returns</strong></span>:basic_string(*this,pos1,n1).compare(sv). </p>
1241 </li>
1242 <li class="listitem">
1243 <pre class="literallayout"><span class="keyword">int</span> <a name="idm45666065934592-bb"></a><span class="identifier">compare</span><span class="special">(</span><span class="identifier">size_type</span> pos1<span class="special">,</span> <span class="identifier">size_type</span> n1<span class="special">,</span> <span class="keyword">const</span> <a class="link" href="basic_string.html" title="Class template basic_string">basic_string</a> <span class="special">&amp;</span> str<span class="special">,</span> 
1244             <span class="identifier">size_type</span> pos2<span class="special">,</span> <span class="identifier">size_type</span> n2 <span class="special">=</span> <span class="identifier">npos</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1245 <p><span class="bold"><strong>Requires</strong></span>: pos1 &lt;= size() and pos2 &lt;= str.size()</p>
1246 <p><span class="bold"><strong>Effects</strong></span>: Determines the effective length rlen of the string to copy as the smaller of</p>
1247 <p><span class="bold"><strong>Throws</strong></span>: out_of_range if pos1 &gt; size() or pos2 &gt; str.size()</p>
1248 <p><span class="bold"><strong>Returns</strong></span>: basic_string(*this, pos1, n1).compare(basic_string(str, pos2, n2)). </p>
1249 </li>
1250 <li class="listitem">
1251 <pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">class</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">&gt;</span> <span class="keyword">class</span> BasicStringView<span class="special">&gt;</span> 
1252   <span class="keyword">int</span> <a name="idm45666065925616-bb"></a><span class="identifier">compare</span><span class="special">(</span><span class="identifier">size_type</span> pos1<span class="special">,</span> <span class="identifier">size_type</span> n1<span class="special">,</span> 
1253               <span class="identifier">BasicStringView</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> sv<span class="special">,</span> <span class="identifier">size_type</span> pos2<span class="special">,</span> 
1254               <span class="identifier">size_type</span> n2<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1255 <p><span class="bold"><strong>Requires</strong></span>: pos1 &lt;= size() and pos2 &lt;= str.size()</p>
1256 <p><span class="bold"><strong>Effects</strong></span>: Determines the effective length rlen of the string to copy as the smaller of</p>
1257 <p><span class="bold"><strong>Throws</strong></span>: out_of_range if pos1 &gt; size() or pos2 &gt; sv.size()</p>
1258 <p><span class="bold"><strong>Returns</strong></span>: basic_string(*this, pos1, n1).compare(BasicStringView&lt;CharT, Traits&gt;(sv, pos2, n2)). </p>
1259 </li>
1260 <li class="listitem">
1261 <pre class="literallayout"><span class="keyword">int</span> <a name="idm45666065916192-bb"></a><span class="identifier">compare</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1262 <p><span class="bold"><strong>Throws</strong></span>: Nothing</p>
1263 <p><span class="bold"><strong>Returns</strong></span>: compare(basic_string(s)). </p>
1264 </li>
1265 <li class="listitem">
1266 <pre class="literallayout"><span class="keyword">int</span> <a name="idm45666065912544-bb"></a><span class="identifier">compare</span><span class="special">(</span><span class="identifier">size_type</span> pos1<span class="special">,</span> <span class="identifier">size_type</span> n1<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">,</span> <span class="identifier">size_type</span> n2<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1267 <p><span class="bold"><strong>Requires</strong></span>: pos1 &gt; size() and s points to an array of at least n2 elements of CharT.</p>
1268 <p><span class="bold"><strong>Throws</strong></span>: out_of_range if pos1 &gt; size()</p>
1269 <p><span class="bold"><strong>Returns</strong></span>: basic_string(*this, pos, n1).compare(basic_string(s, n2)). </p>
1270 </li>
1271 <li class="listitem">
1272 <pre class="literallayout"><span class="keyword">int</span> <a name="idm45666065905872-bb"></a><span class="identifier">compare</span><span class="special">(</span><span class="identifier">size_type</span> pos1<span class="special">,</span> <span class="identifier">size_type</span> n1<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">CharT</span> <span class="special">*</span> s<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
1273 <p><span class="bold"><strong>Requires</strong></span>: pos1 &gt; size() and s points to an array of at least traits::length(s) + 1 elements of CharT.</p>
1274 <p><span class="bold"><strong>Throws</strong></span>: out_of_range if pos1 &gt; size()</p>
1275 <p><span class="bold"><strong>Returns</strong></span>: basic_string(*this, pos, n1).compare(basic_string(s, n2)). </p>
1276 </li>
1277 </ol></div>
1278 </div>
1279 </div>
1280 </div>
1281 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
1282 <td align="left"></td>
1283 <td align="right"><div class="copyright-footer">Copyright &#169; 2009-2018 Ion Gaztanaga<p>
1284         Distributed under the Boost Software License, Version 1.0. (See accompanying
1285         file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
1286       </p>
1287 </div></td>
1288 </tr></table>
1289 <hr>
1290 <div class="spirit-nav">
1291 <a accesskey="p" href="swap_idm45666066660352.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../boost_container_header_reference.html#header.boost.container.string_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="string.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
1292 </div>
1293 </body>
1294 </html>