support SPROUT_CXX14_CONSTEXPR

This commit is contained in:
Bolero-MURAKAMI 2013-11-04 14:31:03 +09:00
parent 88ee58bcf4
commit 2b0aaf71b4
139 changed files with 295 additions and 295 deletions

View file

@ -536,21 +536,21 @@ convertible to pointer</td>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">basic_string</span><span class="p">(</span><span class="n">size_type</span> <span class="n">n</span><span class="p">,</span> <span class="n">value_type</span> <span class="n">c</span><span class="p">);</span>
<span class="k">template</span><span class="o">&lt;</span><span class="k">typename</span> <span class="n">InputIterator</span><span class="o">&gt;</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">basic_string</span><span class="p">(</span><span class="n">InputIterator</span> <span class="n">first</span><span class="p">,</span> <span class="n">InputIterator</span> <span class="n">last</span><span class="p">);</span>
<span class="n">basic_string</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">initializer_list</span><span class="o">&lt;</span><span class="n">value_type</span><span class="o">&gt;</span> <span class="n">il</span><span class="p">);</span>
<span class="n">basic_string</span><span class="o">&amp;</span> <span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="n">basic_string</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">rhs</span><span class="p">);</span>
<span class="n">SPROUT_INITIALIZER_LIST_CONSTEXPR</span> <span class="n">basic_string</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">initializer_list</span><span class="o">&lt;</span><span class="n">value_type</span><span class="o">&gt;</span> <span class="n">il</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">basic_string</span><span class="o">&amp;</span> <span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="n">basic_string</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">rhs</span><span class="p">);</span>
<span class="k">template</span><span class="o">&lt;</span><span class="n">std</span><span class="o">::</span><span class="n">size_t</span> <span class="n">N2</span><span class="p">,</span> <span class="k">typename</span> <span class="n">Enable</span> <span class="o">=</span> <span class="k">typename</span> <span class="n">std</span><span class="o">::</span><span class="n">enable_if</span><span class="o">&lt;</span><span class="p">(</span><span class="n">N2</span> <span class="o">!=</span> <span class="n">N</span><span class="p">)</span><span class="o">&gt;::</span><span class="n">type</span><span class="o">&gt;</span>
<span class="n">basic_string</span><span class="o">&amp;</span> <span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N2</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">rhs</span><span class="p">);</span>
<span class="n">basic_string</span><span class="o">&amp;</span> <span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="n">value_type</span> <span class="k">const</span><span class="o">*</span> <span class="n">rhs</span><span class="p">);</span>
<span class="n">basic_string</span><span class="o">&amp;</span> <span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="n">value_type</span> <span class="n">rhs</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">basic_string</span><span class="o">&amp;</span> <span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N2</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">rhs</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">basic_string</span><span class="o">&amp;</span> <span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="n">value_type</span> <span class="k">const</span><span class="o">*</span> <span class="n">rhs</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">basic_string</span><span class="o">&amp;</span> <span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="n">value_type</span> <span class="n">rhs</span><span class="p">);</span>
<span class="c1">// iterators:</span>
<span class="n">iterator</span> <span class="n">begin</span><span class="p">()</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">iterator</span> <span class="n">begin</span><span class="p">()</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">const_iterator</span> <span class="n">begin</span><span class="p">()</span> <span class="k">const</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">iterator</span> <span class="n">end</span><span class="p">()</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">iterator</span> <span class="n">end</span><span class="p">()</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">const_iterator</span> <span class="n">end</span><span class="p">()</span> <span class="k">const</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">reverse_iterator</span> <span class="n">rbegin</span><span class="p">()</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">reverse_iterator</span> <span class="n">rbegin</span><span class="p">()</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">const_reverse_iterator</span> <span class="n">rbegin</span><span class="p">()</span> <span class="k">const</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">reverse_iterator</span> <span class="n">rend</span><span class="p">()</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">reverse_iterator</span> <span class="n">rend</span><span class="p">()</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">const_reverse_iterator</span> <span class="n">rend</span><span class="p">()</span> <span class="k">const</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">const_iterator</span> <span class="n">cbegin</span><span class="p">()</span> <span class="k">const</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">const_iterator</span> <span class="n">cend</span><span class="p">()</span> <span class="k">const</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
@ -561,38 +561,38 @@ convertible to pointer</td>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">size_type</span> <span class="n">size</span><span class="p">()</span> <span class="k">const</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">size_type</span> <span class="n">length</span><span class="p">()</span> <span class="k">const</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">size_type</span> <span class="n">max_size</span><span class="p">()</span> <span class="k">const</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="kt">void</span> <span class="n">resize</span><span class="p">(</span><span class="n">size_type</span> <span class="n">n</span><span class="p">,</span> <span class="n">value_type</span> <span class="n">c</span><span class="p">);</span>
<span class="kt">void</span> <span class="n">resize</span><span class="p">(</span><span class="n">size_type</span> <span class="n">n</span><span class="p">);</span>
<span class="kt">void</span> <span class="n">clear</span><span class="p">()</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="kt">void</span> <span class="n">resize</span><span class="p">(</span><span class="n">size_type</span> <span class="n">n</span><span class="p">,</span> <span class="n">value_type</span> <span class="n">c</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="kt">void</span> <span class="n">resize</span><span class="p">(</span><span class="n">size_type</span> <span class="n">n</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="kt">void</span> <span class="n">clear</span><span class="p">()</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="kt">bool</span> <span class="n">empty</span><span class="p">()</span> <span class="k">const</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="c1">// element access:</span>
<span class="n">reference</span> <span class="k">operator</span><span class="p">[](</span><span class="n">size_type</span> <span class="n">i</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">reference</span> <span class="k">operator</span><span class="p">[](</span><span class="n">size_type</span> <span class="n">i</span><span class="p">);</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">const_reference</span> <span class="k">operator</span><span class="p">[](</span><span class="n">size_type</span> <span class="n">i</span><span class="p">)</span> <span class="k">const</span><span class="p">;</span>
<span class="n">reference</span> <span class="n">at</span><span class="p">(</span><span class="n">size_type</span> <span class="n">i</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">reference</span> <span class="n">at</span><span class="p">(</span><span class="n">size_type</span> <span class="n">i</span><span class="p">);</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">const_reference</span> <span class="n">at</span><span class="p">(</span><span class="n">size_type</span> <span class="n">i</span><span class="p">)</span> <span class="k">const</span><span class="p">;</span>
<span class="n">reference</span> <span class="n">front</span><span class="p">();</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">reference</span> <span class="n">front</span><span class="p">();</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">const_reference</span> <span class="n">front</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span>
<span class="n">reference</span> <span class="n">back</span><span class="p">();</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">reference</span> <span class="n">back</span><span class="p">();</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">const_reference</span> <span class="n">back</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span>
<span class="c1">// modifiers:</span>
<span class="k">template</span><span class="o">&lt;</span><span class="n">std</span><span class="o">::</span><span class="n">size_t</span> <span class="n">N2</span><span class="o">&gt;</span>
<span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N2</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">str</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N2</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">str</span><span class="p">);</span>
<span class="k">template</span><span class="o">&lt;</span><span class="n">std</span><span class="o">::</span><span class="n">size_t</span> <span class="n">N2</span><span class="o">&gt;</span>
<span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N2</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">str</span><span class="p">,</span> <span class="n">size_type</span> <span class="n">pos</span><span class="p">,</span> <span class="n">size_type</span> <span class="n">n</span><span class="p">);</span>
<span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">value_type</span> <span class="k">const</span><span class="o">*</span> <span class="n">s</span><span class="p">,</span> <span class="n">size_type</span> <span class="n">n</span><span class="p">);</span>
<span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">value_type</span> <span class="k">const</span><span class="o">*</span> <span class="n">s</span><span class="p">);</span>
<span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">size_type</span> <span class="n">n</span><span class="p">,</span> <span class="n">value_type</span> <span class="n">c</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N2</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">str</span><span class="p">,</span> <span class="n">size_type</span> <span class="n">pos</span><span class="p">,</span> <span class="n">size_type</span> <span class="n">n</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">value_type</span> <span class="k">const</span><span class="o">*</span> <span class="n">s</span><span class="p">,</span> <span class="n">size_type</span> <span class="n">n</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">value_type</span> <span class="k">const</span><span class="o">*</span> <span class="n">s</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">size_type</span> <span class="n">n</span><span class="p">,</span> <span class="n">value_type</span> <span class="n">c</span><span class="p">);</span>
<span class="k">template</span><span class="o">&lt;</span><span class="k">typename</span> <span class="n">InputIterator</span><span class="o">&gt;</span>
<span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">InputIterator</span> <span class="n">first</span><span class="p">,</span> <span class="n">InputIterator</span> <span class="n">last</span><span class="p">);</span>
<span class="kt">void</span> <span class="n">swap</span><span class="p">(</span><span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">other</span><span class="p">)</span> <span class="n">SPROUT_NOEXCEPT_EXPR</span><span class="p">(</span><span class="n">SPROUT_NOEXCEPT_EXPR</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">swap</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">declval</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&amp;&gt;</span><span class="p">(),</span> <span class="n">std</span><span class="o">::</span><span class="n">declval</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&amp;&gt;</span><span class="p">())));</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">InputIterator</span> <span class="n">first</span><span class="p">,</span> <span class="n">InputIterator</span> <span class="n">last</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="kt">void</span> <span class="n">swap</span><span class="p">(</span><span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">other</span><span class="p">)</span> <span class="n">SPROUT_NOEXCEPT_EXPR</span><span class="p">(</span><span class="n">SPROUT_NOEXCEPT_EXPR</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">swap</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">declval</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&amp;&gt;</span><span class="p">(),</span> <span class="n">std</span><span class="o">::</span><span class="n">declval</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&amp;&gt;</span><span class="p">())));</span>
<span class="c1">// string operations:</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">const_pointer</span> <span class="n">c_str</span><span class="p">()</span> <span class="k">const</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">pointer</span> <span class="n">data</span><span class="p">()</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">pointer</span> <span class="n">data</span><span class="p">()</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">const_pointer</span> <span class="n">data</span><span class="p">()</span> <span class="k">const</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">pointer</span> <span class="n">c_array</span><span class="p">()</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">pointer</span> <span class="n">c_array</span><span class="p">()</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">const_pointer</span> <span class="n">c_array</span><span class="p">()</span> <span class="k">const</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
<span class="k">template</span><span class="o">&lt;</span><span class="n">std</span><span class="o">::</span><span class="n">size_t</span> <span class="n">N2</span><span class="o">&gt;</span>
<span class="n">SPROUT_CONSTEXPR</span> <span class="n">size_type</span> <span class="n">find</span><span class="p">(</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">N2</span><span class="p">,</span> <span class="n">Traits</span><span class="o">&gt;</span> <span class="k">const</span><span class="o">&amp;</span> <span class="n">str</span><span class="p">,</span> <span class="n">size_type</span> <span class="n">pos</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="k">const</span> <span class="n">SPROUT_NOEXCEPT</span><span class="p">;</span>
@ -637,17 +637,17 @@ convertible to pointer</td>
<span class="c1">// conversions:</span>
<span class="k">template</span><span class="o">&lt;</span><span class="k">typename</span> <span class="n">Allocator</span><span class="o">&gt;</span>
<span class="n">SPROUT_EXPLICIT_CONVERSION</span> <span class="k">operator</span> <span class="n">std</span><span class="o">::</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">Traits</span><span class="p">,</span> <span class="n">Allocator</span><span class="o">&gt;</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span>
<span class="n">SPROUT_EXPLICIT_CONVERSION</span> <span class="n">SPROUT_NON_CONSTEXPR</span> <span class="k">operator</span> <span class="n">std</span><span class="o">::</span><span class="n">basic_string</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span> <span class="n">Traits</span><span class="p">,</span> <span class="n">Allocator</span><span class="o">&gt;</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span>
<span class="c1">// construct/copy/destroy (for string iterator):</span>
<span class="k">template</span><span class="o">&lt;</span><span class="k">typename</span> <span class="n">StringConstIterator</span><span class="o">&gt;</span>
<span class="n">basic_string</span><span class="o">&amp;</span> <span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="n">StringConstIterator</span> <span class="n">rhs</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">basic_string</span><span class="o">&amp;</span> <span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="n">StringConstIterator</span> <span class="n">rhs</span><span class="p">);</span>
<span class="c1">// modifiers (for string iterator):</span>
<span class="k">template</span><span class="o">&lt;</span><span class="k">typename</span> <span class="n">StringConstIterator</span><span class="o">&gt;</span>
<span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">StringConstIterator</span> <span class="n">s</span><span class="p">,</span> <span class="n">size_type</span> <span class="n">n</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">StringConstIterator</span> <span class="n">s</span><span class="p">,</span> <span class="n">size_type</span> <span class="n">n</span><span class="p">);</span>
<span class="k">template</span><span class="o">&lt;</span><span class="k">typename</span> <span class="n">StringConstIterator</span><span class="o">&gt;</span>
<span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">StringConstIterator</span> <span class="n">s</span><span class="p">);</span>
<span class="n">SPROUT_CXX14_CONSTEXPR</span> <span class="n">basic_string</span><span class="o">&amp;</span> <span class="n">assign</span><span class="p">(</span><span class="n">StringConstIterator</span> <span class="n">s</span><span class="p">);</span>
<span class="c1">// string operations (for string iterator):</span>
<span class="k">template</span><span class="o">&lt;</span><span class="k">typename</span> <span class="n">StringConstIterator</span><span class="o">&gt;</span>