[DEV] add v1.76.0

This commit is contained in:
2021-10-05 21:37:46 +02:00
parent a97e9ae7d4
commit d0115b733d
45133 changed files with 4744437 additions and 1026325 deletions

View File

@@ -0,0 +1,247 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Concepts</title>
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../string_algo.html" title="Chapter 2. Boost String Algorithms Library">
<link rel="prev" href="design.html" title="Design Topics">
<link rel="next" href="reference.html" title="Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
<td align="center"><a href="../../../index.html">Home</a></td>
<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="design.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="reference.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="string_algo.concept"></a>Concepts</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="concept.html#id-1.3.3.8.2">Definitions</a></span></dt>
<dt><span class="section"><a href="concept.html#string_algo.finder_concept">Finder Concept</a></span></dt>
<dt><span class="section"><a href="concept.html#string_algo.formatter_concept">Formatter concept</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.8.2"></a>Definitions</h3></div></div></div>
<div class="table">
<a name="id-1.3.3.8.2.2"></a><p class="title"><b>Table 2.13. Notation</b></p>
<div class="table-contents"><table class="table" summary="Notation">
<colgroup>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td align="left"><code class="computeroutput">F</code></td>
<td align="left">A type that is a model of Finder</td>
</tr>
<tr>
<td align="left"><code class="computeroutput">Fmt</code></td>
<td align="left">A type that is a model of Formatter</td>
</tr>
<tr>
<td align="left"><code class="computeroutput">Iter</code></td>
<td align="left">
Iterator Type
</td>
</tr>
<tr>
<td align="left"><code class="computeroutput">f</code></td>
<td align="left">Object of type <code class="computeroutput">F</code>
</td>
</tr>
<tr>
<td align="left"><code class="computeroutput">fmt</code></td>
<td align="left">Object of type <code class="computeroutput">Fmt</code>
</td>
</tr>
<tr>
<td align="left"><code class="computeroutput">i,j</code></td>
<td align="left">Objects of type <code class="computeroutput">Iter</code>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="string_algo.finder_concept"></a>Finder Concept</h3></div></div></div>
<p>
Finder is a functor which searches for an arbitrary part of a container.
The result of the search is given as an <code class="computeroutput">iterator_range</code>
delimiting the selected part.
</p>
<div class="table">
<a name="id-1.3.3.8.3.3"></a><p class="title"><b>Table 2.14. Valid Expressions</b></p>
<div class="table-contents"><table class="table" summary="Valid Expressions">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th align="left">Expression</th>
<th align="left">Return Type</th>
<th align="left">Effects</th>
</tr></thead>
<tbody><tr>
<td align="left"><code class="computeroutput">f(i,j)</code></td>
<td align="left">Convertible to <code class="computeroutput">iterator_range&lt;Iter&gt;</code>
</td>
<td align="left">Perform the search on the interval [i,j) and returns the result of the search</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break"><p>
Various algorithms need to perform a search in a container and a Finder is a generalization of such
search operations that allows algorithms to abstract from searching. For instance, generic replace
algorithms can replace any part of the input, and the Finder is used to select the desired one.
</p>
<p>
Note, that it is only required that the finder works with a particular iterator type. However,
a Finder operation can be defined as a template, allowing the Finder to work with any iterator.
</p>
<p>
<span class="bold"><strong>Examples</strong></span>
</p>
<p>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Finder implemented as a class. This Finder always returns the whole input as a match. <code class="computeroutput">operator()</code>
is templated, so that the finder can be used on any iterator type.
<pre class="programlisting">
struct simple_finder
{
template&lt;typename ForwardIteratorT&gt;
boost::iterator_range&lt;ForwardIteratorT&gt; operator()(
ForwardIteratorT Begin,
ForwardIteratorT End )
{
return boost::make_range( Begin, End );
}
};
</pre>
</li>
<li class="listitem">
Function Finder. Finder can be any function object. That is, any ordinary function with the
required signature can be used as well. However, such a function can be used only for
a specific iterator type.
<pre class="programlisting">
boost::iterator_range&lt;std::string&gt; simple_finder(
std::string::const_iterator Begin,
std::string::const_iterator End )
{
return boost::make_range( Begin, End );
}
</pre>
</li>
</ul></div>
<p>
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="string_algo.formatter_concept"></a>Formatter concept</h3></div></div></div>
<p>
Formatters are used by <a class="link" href="design.html#string_algo.replace" title="Replace Algorithms">replace algorithms</a>.
They are used in close combination with finders.
A formatter is a functor, which takes a result from a Finder operation and transforms it in a specific way.
The operation of the formatter can use additional information provided by a specific finder,
for example <code class="computeroutput"><a class="link" href="../boost/algorithm/regex_formatter.html" title="Function template regex_formatter">regex_formatter()</a></code> uses the match information from
<code class="computeroutput"><a class="link" href="../boost/algorithm/regex_finder.html" title="Function template regex_finder">regex_finder()</a></code> to format the result of formatter operation.
</p>
<div class="table">
<a name="id-1.3.3.8.4.3"></a><p class="title"><b>Table 2.15. Valid Expressions</b></p>
<div class="table-contents"><table class="table" summary="Valid Expressions">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th align="left">Expression</th>
<th align="left">Return Type</th>
<th align="left">Effects</th>
</tr></thead>
<tbody><tr>
<td align="left"><code class="computeroutput">fmt(f(i,j))</code></td>
<td align="left">A container type, accessible using container traits</td>
<td align="left">Formats the result of the finder operation</td>
</tr></tbody>
</table></div>
</div>
<br class="table-break"><p>
Similarly to finders, formatters generalize format operations. When a finder is used to
select a part of the input, formatter takes this selection and performs some formatting
on it. Algorithms can abstract from formatting using a formatter.
</p>
<p>
<span class="bold"><strong>Examples</strong></span>
</p>
<p>
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Formatter implemented as a class. This Formatter does not perform any formatting and
returns the match, repackaged. <code class="computeroutput">operator()</code>
is templated, so that the Formatter can be used on any Finder type.
<pre class="programlisting">
struct simple_formatter
{
template&lt;typename FindResultT&gt;
std::string operator()( const FindResultT&amp; Match )
{
std::string Temp( Match.begin(), Match.end() );
return Temp;
}
};
</pre>
</li>
<li class="listitem">
Function Formatter. Similarly to Finder, Formatter can be any function object.
However, as a function, it can be used only with a specific Finder type.
<pre class="programlisting">
std::string simple_formatter( boost::iterator_range&lt;std::string::const_iterator&gt;&amp; Match )
{
std::string Temp( Match.begin(), Match.end() );
return Temp;
}
</pre>
</li>
</ul></div>
<p>
</p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2002-2004 Pavol Droba<p>Use, modification and distribution is subject to the Boost
Software License, Version 1.0. (See accompanying file
<code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="design.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="reference.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,58 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Credits</title>
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../string_algo.html" title="Chapter 2. Boost String Algorithms Library">
<link rel="prev" href="env.html" title="Environment">
<link rel="next" href="../align.html" title="Chapter 3. Boost.Align">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
<td align="center"><a href="../../../index.html">Home</a></td>
<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="env.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="../align.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="string_algo.credits"></a>Credits</h2></div></div></div>
<div class="toc"><dl class="toc"><dt><span class="section"><a href="credits.html#string_algo.ack">Acknowledgments</a></span></dt></dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="string_algo.ack"></a>Acknowledgments</h3></div></div></div>
<p>
The author would like to thank everybody who gave suggestions and comments. Especially valuable
were the contributions of Thorsten Ottosen, Jeff Garland and the other boost members who participated
in the review process, namely David Abrahams, Daniel Frey, Beman Dawes, John Maddock, David B.Held, Pavel Vozenilek
and many other.
</p>
<p>
Additional thanks go to Stefan Slapeta and Toon Knapen, who have been very resourceful in solving various
portability issues.
</p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2002-2004 Pavol Droba<p>Use, modification and distribution is subject to the Boost
Software License, Version 1.0. (See accompanying file
<code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="env.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="../align.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,263 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Design Topics</title>
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../string_algo.html" title="Chapter 2. Boost String Algorithms Library">
<link rel="prev" href="quickref.html" title="Quick Reference">
<link rel="next" href="concept.html" title="Concepts">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
<td align="center"><a href="../../../index.html">Home</a></td>
<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="quickref.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="concept.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="string_algo.design"></a>Design Topics</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="design.html#string_algo.string">String Representation</a></span></dt>
<dt><span class="section"><a href="design.html#string_algo.sequence_traits">Sequence Traits</a></span></dt>
<dt><span class="section"><a href="design.html#string_algo.find">Find Algorithms</a></span></dt>
<dt><span class="section"><a href="design.html#string_algo.replace">Replace Algorithms</a></span></dt>
<dt><span class="section"><a href="design.html#string_algo.split">Find Iterators &amp; Split Algorithms</a></span></dt>
<dt><span class="section"><a href="design.html#string_algo.exception">Exception Safety</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="string_algo.string"></a>String Representation</h3></div></div></div>
<p>
As the name suggest, this library works mainly with strings. However, in the context of this library,
a string is not restricted to any particular implementation (like <code class="computeroutput">std::basic_string</code>),
rather it is a concept. This allows the algorithms in this library to be reused for any string type,
that satisfies the given requirements.
</p>
<p>
<span class="bold"><strong>Definition:</strong></span> A string is a
<a href="../../../libs/range/index.html" target="_top">range</a> of characters accessible in sequential
ordered fashion. Character is any value type with "cheap" copying and assignment.
</p>
<p>
First requirement of string-type is that it must accessible using
<a href="../../../libs/range/index.html" target="_top">Boost.Range</a>. This facility allows to access
the elements inside the string in a uniform iterator-based fashion.
This is sufficient for our library
</p>
<p>
Second requirement defines the way in which the characters are stored in the string. Algorithms in
this library work with an assumption that copying a character is cheaper then allocating extra
storage to cache results. This is a natural assumption for common character types. Algorithms will
work even if this requirement is not satisfied, however at the cost of performance degradation.
</p>
<p>
</p>
<p>
In addition some algorithms have additional requirements on the string-type. Particularly, it is required
that an algorithm can create a new string of the given type. In this case, it is required that
the type satisfies the sequence (Std §23.1.1) requirements.
</p>
<p>
In the reference and also in the code, requirement on the string type is designated by the name of
template argument. <code class="computeroutput">RangeT</code> means that the basic range requirements must hold.
<code class="computeroutput">SequenceT</code> designates extended sequence requirements.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="string_algo.sequence_traits"></a>Sequence Traits</h3></div></div></div>
<p>
The major difference between <code class="computeroutput">std::list</code> and <code class="computeroutput">std::vector</code> is not in the interfaces
they provide, but rather in the inner details of the class and the way how it performs
various operations. The problem is that it is not possible to infer this difference from the
definitions of classes without some special mechanism.
However, some algorithms can run significantly faster with the knowledge of the properties
of a particular container.
</p>
<p>
Sequence traits allow one to specify additional properties of a sequence container (see Std.§32.2).
These properties are then used by algorithms to select optimized handling for some operations.
The sequence traits are declared in the header
<code class="computeroutput"><a class="link" href="reference.html#header.boost.algorithm.string.sequence_traits_hpp" title="Header &lt;boost/algorithm/string/sequence_traits.hpp&gt;">boost/algorithm/string/sequence_traits.hpp</a></code>.
</p>
<p>
In the table C denotes a container and c is an object of C.
</p>
<div class="table">
<a name="id-1.3.3.7.3.5"></a><p class="title"><b>Table 2.12. Sequence Traits</b></p>
<div class="table-contents"><table class="table" summary="Sequence Traits">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th align="left">Trait</th>
<th align="left">Description</th>
</tr></thead>
<tbody>
<tr>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/has_native_replace.html" title="Class template has_native_replace">has_native_replace&lt;C&gt;</a></code>::value</td>
<td align="left">Specifies that the sequence has std::string like replace method</td>
</tr>
<tr>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/has_stable_iterators.html" title="Class template has_stable_iterators">has_stable_iterators&lt;C&gt;</a></code>::value</td>
<td align="left">
Specifies that the sequence has stable iterators. It means,
that operations like <code class="computeroutput">insert</code>/<code class="computeroutput">erase</code>/<code class="computeroutput">replace</code>
do not invalidate iterators.
</td>
</tr>
<tr>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/has_const_time_insert.html" title="Class template has_const_time_insert">has_const_time_insert&lt;C&gt;</a></code>::value</td>
<td align="left">
Specifies that the insert method of the sequence has
constant time complexity.
</td>
</tr>
<tr>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/has_const_time_erase.html" title="Class template has_const_time_erase">has_const_time_erase&lt;C&gt;</a></code>::value</td>
<td align="left">
Specifies that the erase method of the sequence has constant time complexity
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><p>
Current implementation contains specializations for std::list&lt;T&gt; and
std::basic_string&lt;T&gt; from the standard library and SGI's std::rope&lt;T&gt; and std::slist&lt;T&gt;.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="string_algo.find"></a>Find Algorithms</h3></div></div></div>
<p>
Find algorithms have similar functionality to <code class="computeroutput">std::search()</code> algorithm. They provide a different
interface which is more suitable for common string operations.
Instead of returning just the start of matching subsequence they return a range which is necessary
when the length of the matching subsequence is not known beforehand.
This feature also allows a partitioning of the input sequence into three
parts: a prefix, a substring and a suffix.
</p>
<p>
Another difference is an addition of various searching methods besides find_first, including find_regex.
</p>
<p>
It the library, find algorithms are implemented in terms of
<a class="link" href="concept.html#string_algo.finder_concept" title="Finder Concept">Finders</a>. Finders are used also by other facilities
(replace,split).
For convenience, there are also function wrappers for these finders to simplify find operations.
</p>
<p>
Currently the library contains only naive implementation of find algorithms with complexity
O(n * m) where n is the size of the input sequence and m is the size of the search sequence.
There are algorithms with complexity O(n), but for smaller sequence a constant overhead is
rather big. For small m &lt;&lt; n (m by magnitude smaller than n) the current implementation
provides acceptable efficiency.
Even the C++ standard defines the required complexity for search algorithm as O(n * m).
It is possible that a future version of library will also contain algorithms with linear
complexity as an option
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="string_algo.replace"></a>Replace Algorithms</h3></div></div></div>
<p>
The implementation of replace algorithms follows the layered structure of the library. The
lower layer implements generic substitution of a range in the input sequence.
This layer takes a <a class="link" href="concept.html#string_algo.finder_concept" title="Finder Concept">Finder</a> object and a
<a class="link" href="concept.html#string_algo.formatter_concept" title="Formatter concept">Formatter</a> object as an input. These two
functors define what to replace and what to replace it with. The upper layer functions
are just wrapping calls to the lower layer. Finders are shared with the find and split facility.
</p>
<p>
As usual, the implementation of the lower layer is designed to work with a generic sequence while
taking advantage of specific features if possible
(by using <a class="link" href="design.html#string_algo.sequence_traits" title="Sequence Traits">Sequence traits</a>)
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="string_algo.split"></a>Find Iterators &amp; Split Algorithms</h3></div></div></div>
<p>
Find iterators are a logical extension of the <a class="link" href="design.html#string_algo.find" title="Find Algorithms">find facility</a>.
Instead of searching for one match, the whole input can be iteratively searched for multiple matches.
The result of the search is then used to partition the input. It depends on the algorithms which parts
are returned as the result. They can be the matching parts (<code class="computeroutput"><a class="link" href="../boost/algorithm/find_iterator.html" title="Class template find_iterator">find_iterator</a></code>) of the parts in
between (<code class="computeroutput"><a class="link" href="../boost/algorithm/split_iterator.html" title="Class template split_iterator">split_iterator</a></code>).
</p>
<p>
In addition the split algorithms like <code class="computeroutput"><a class="link" href="../boost/algorithm/find_all.html" title="Function template find_all">find_all()</a></code> and <code class="computeroutput"><a class="link" href="../boost/algorithm/split.html" title="Function template split">split()</a></code>
can simplify the common operations. They use a find iterator to search the whole input and copy the
matches they found into the supplied container.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="string_algo.exception"></a>Exception Safety</h3></div></div></div>
<p>
The library requires that all operations on types used as template
or function arguments provide the <span class="emphasis"><em>basic exception-safety guarantee</em></span>.
In turn, all functions and algorithms in this library, except where stated
otherwise, will provide the <span class="emphasis"><em>basic exception-safety guarantee</em></span>.
In other words:
The library maintains its invariants and does not leak resources in
the face of exceptions. Some library operations give stronger
guarantees, which are documented on an individual basis.
</p>
<p>
Some functions can provide the <span class="emphasis"><em>strong exception-safety guarantee</em></span>.
That means that following statements are true:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
If an exception is thrown, there are no effects other than those
of the function
</li>
<li class="listitem">
If an exception is thrown other than by the function, there are no effects
</li>
</ul></div>
<p>
This guarantee can be provided under the condition that the operations
on the types used for arguments for these functions either
provide the strong exception guarantee or do not alter the global state .
</p>
<p>
In the reference, under the term <span class="emphasis"><em>strong exception-safety guarantee</em></span>, we mean the
guarantee as defined above.
</p>
<p>
For more information about the exception safety topics, follow this
<a href="http://www.boost.org/more/generic_exception_safety.html" target="_top">link</a>
</p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2002-2004 Pavol Droba<p>Use, modification and distribution is subject to the Boost
Software License, Version 1.0. (See accompanying file
<code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="quickref.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="concept.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,105 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Environment</title>
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../string_algo.html" title="Chapter 2. Boost String Algorithms Library">
<link rel="prev" href="rationale.html" title="Rationale">
<link rel="next" href="credits.html" title="Credits">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
<td align="center"><a href="../../../index.html">Home</a></td>
<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="rationale.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="credits.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="string_algo.env"></a>Environment</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="env.html#id-1.3.3.11.2">Build</a></span></dt>
<dt><span class="section"><a href="env.html#id-1.3.3.11.3">Examples</a></span></dt>
<dt><span class="section"><a href="env.html#id-1.3.3.11.4">Tests</a></span></dt>
<dt><span class="section"><a href="env.html#id-1.3.3.11.5">Portability</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.11.2"></a>Build</h3></div></div></div>
<p>
The whole library is provided in headers. Regex variants of some algorithms,
however, are dependent on the Boost.Regex library. All such algorithms are
separated in <code class="computeroutput"><a class="link" href="reference.html#header.boost.algorithm.string_regex_hpp" title="Header &lt;boost/algorithm/string_regex.hpp&gt;">boost/algorithm/string_regex.hpp</a></code>.
If this header is used, the application must be linked with the Boost.Regex
library.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.11.3"></a>Examples</h3></div></div></div>
<p>
Examples showing the basic usage of the library can be found in the libs/algorithm/string/example
directory. There is a separate file for the each part of the library. Please follow the boost
build guidelines to build examples using the bjam. To successfully build regex examples
the Boost.Regex library is required.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.11.4"></a>Tests</h3></div></div></div>
<p>
A full set of test cases for the library is located in the libs/algorithm/string/test directory.
The test cases can be executed using the boost build system. For the tests of regular
expression variants of algorithms, the Boost.Regex library is required.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.11.5"></a>Portability</h3></div></div></div>
<p>
The library has been successfully compiled and tested with the following compilers:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">Microsoft Visual C++ 7.0</li>
<li class="listitem">Microsoft Visual C++ 7.1</li>
<li class="listitem">GCC 3.2</li>
<li class="listitem">GCC 3.3.1</li>
</ul></div>
<p>
See <a href="http://boost.sourceforge.net/regression-logs/" target="_top">Boost regression tables</a>
for additional info for a particular compiler.
</p>
<p>
There are known limitation on platforms not supporting partial template specialization.
Library depends on correctly implemented <code class="computeroutput">std::iterator_traits</code> class.
If a standard library provided with compiler is broken, the String Algorithm Library
cannot function properly. Usually it implies that primitive pointer iterators are not
working with the library functions.
</p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2002-2004 Pavol Droba<p>Use, modification and distribution is subject to the Boost
Software License, Version 1.0. (See accompanying file
<code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="rationale.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="credits.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,824 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Quick Reference</title>
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../string_algo.html" title="Chapter 2. Boost String Algorithms Library">
<link rel="prev" href="usage.html" title="Usage">
<link rel="next" href="design.html" title="Design Topics">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
<td align="center"><a href="../../../index.html">Home</a></td>
<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="usage.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="design.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="string_algo.quickref"></a>Quick Reference</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="quickref.html#id-1.3.3.6.2">Algorithms</a></span></dt>
<dt><span class="section"><a href="quickref.html#id-1.3.3.6.3">Finders and Formatters</a></span></dt>
<dt><span class="section"><a href="quickref.html#id-1.3.3.6.4">Iterators</a></span></dt>
<dt><span class="section"><a href="quickref.html#id-1.3.3.6.5">Classification</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.6.2"></a>Algorithms</h3></div></div></div>
<div class="table">
<a name="id-1.3.3.6.2.2"></a><p class="title"><b>Table 2.1. Case Conversion</b></p>
<div class="table-contents"><table class="table" summary="Case Conversion">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th align="left">Algorithm name</th>
<th align="left">Description</th>
<th align="left">Functions</th>
</tr></thead>
<tbody>
<tr>
<td align="left"><code class="computeroutput">to_upper</code></td>
<td align="left">Convert a string to upper case</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/to_upper_copy.html" title="Function to_upper_copy">to_upper_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/to_upper.html" title="Function template to_upper">to_upper()</a></code>
</td>
</tr>
<tr>
<td align="left"><code class="computeroutput">to_lower</code></td>
<td align="left">Convert a string to lower case</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/to_lower_copy.html" title="Function to_lower_copy">to_lower_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/to_lower.html" title="Function template to_lower">to_lower()</a></code>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="id-1.3.3.6.2.3"></a><p class="title"><b>Table 2.2. Trimming</b></p>
<div class="table-contents"><table class="table" summary="Trimming">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th align="left">Algorithm name</th>
<th align="left">Description</th>
<th align="left">Functions</th>
</tr></thead>
<tbody>
<tr>
<td align="left"><code class="computeroutput">trim_left</code></td>
<td align="left">Remove leading spaces from a string</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/trim_left_copy_if.html" title="Function trim_left_copy_if">trim_left_copy_if()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/trim_left_if.html" title="Function template trim_left_if">trim_left_if()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/trim_left_copy.html" title="Function template trim_left_copy">trim_left_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/trim_left.html" title="Function template trim_left">trim_left()</a></code>
</td>
</tr>
<tr>
<td align="left"><code class="computeroutput">trim_right</code></td>
<td align="left">Remove trailing spaces from a string</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/trim_right_copy_if.html" title="Function trim_right_copy_if">trim_right_copy_if()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/trim_right_if.html" title="Function template trim_right_if">trim_right_if()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/trim_right_copy.html" title="Function template trim_right_copy">trim_right_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/trim_right.html" title="Function template trim_right">trim_right()</a></code>
</td>
</tr>
<tr>
<td align="left"><code class="computeroutput">trim</code></td>
<td align="left">Remove leading and trailing spaces from a string</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/trim_copy_if.html" title="Function trim_copy_if">trim_copy_if()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/trim_if.html" title="Function template trim_if">trim_if()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/trim_copy.html" title="Function template trim_copy">trim_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/trim.html" title="Function template trim">trim()</a></code>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="id-1.3.3.6.2.4"></a><p class="title"><b>Table 2.3. Predicates</b></p>
<div class="table-contents"><table class="table" summary="Predicates">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th align="left">Algorithm name</th>
<th align="left">Description</th>
<th align="left">Functions</th>
</tr></thead>
<tbody>
<tr>
<td align="left"><code class="computeroutput">starts_with</code></td>
<td align="left">Check if a string is a prefix of the other one</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/starts_with.html" title="Function starts_with">starts_with()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/istarts_with.html" title="Function template istarts_with">istarts_with()</a></code>
</td>
</tr>
<tr>
<td align="left"><code class="computeroutput">ends_with</code></td>
<td align="left">Check if a string is a suffix of the other one</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/ends_with.html" title="Function ends_with">ends_with()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/iends_with.html" title="Function template iends_with">iends_with()</a></code>
</td>
</tr>
<tr>
<td align="left"><code class="computeroutput">contains</code></td>
<td align="left">Check if a string is contained of the other one</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/contains.html" title="Function contains">contains()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/icontains.html" title="Function template icontains">icontains()</a></code>
</td>
</tr>
<tr>
<td align="left"><code class="computeroutput">equals</code></td>
<td align="left">Check if two strings are equal</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/equals.html" title="Function equals">equals()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/iequals.html" title="Function template iequals">iequals()</a></code>
</td>
</tr>
<tr>
<td align="left"><code class="computeroutput">lexicographical_compare</code></td>
<td align="left">Check if a string is lexicographically less then another one</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/lexicographical_compare.html" title="Function lexicographical_compare">lexicographical_compare()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ilexicographical_compare.html" title="Function template ilexicographical_compare">ilexicographical_compare()</a></code>
</td>
</tr>
<tr>
<td align="left"><code class="computeroutput">all</code></td>
<td align="left">Check if all elements of a string satisfy the given predicate</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/all.html" title="Function template all">all()</a></code>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="id-1.3.3.6.2.5"></a><p class="title"><b>Table 2.4. Find algorithms</b></p>
<div class="table-contents"><table class="table" summary="Find algorithms">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th align="left">Algorithm name</th>
<th align="left">Description</th>
<th align="left">Functions</th>
</tr></thead>
<tbody>
<tr>
<td align="left">find_first</td>
<td align="left">Find the first occurrence of a string in the input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/find_first.html" title="Function template find_first">find_first()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ifind_first.html" title="Function template ifind_first">ifind_first()</a></code>
</td>
</tr>
<tr>
<td align="left">find_last</td>
<td align="left">Find the last occurrence of a string in the input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/find_last.html" title="Function template find_last">find_last()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ifind_last.html" title="Function template ifind_last">ifind_last()</a></code>
</td>
</tr>
<tr>
<td align="left">find_nth</td>
<td align="left">Find the nth (zero-indexed) occurrence of a string in the input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/find_nth.html" title="Function template find_nth">find_nth()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ifind_nth.html" title="Function template ifind_nth">ifind_nth()</a></code>
</td>
</tr>
<tr>
<td align="left">find_head</td>
<td align="left">Retrieve the head of a string</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/find_head.html" title="Function template find_head">find_head()</a></code>
</td>
</tr>
<tr>
<td align="left">find_tail</td>
<td align="left">Retrieve the tail of a string</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/find_tail.html" title="Function template find_tail">find_tail()</a></code>
</td>
</tr>
<tr>
<td align="left">find_token</td>
<td align="left">Find first matching token in the string</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/find_token.html" title="Function template find_token">find_token()</a></code>
</td>
</tr>
<tr>
<td align="left">find_regex</td>
<td align="left">Use the regular expression to search the string</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/find_regex.html" title="Function template find_regex">find_regex()</a></code>
</td>
</tr>
<tr>
<td align="left">find</td>
<td align="left">Generic find algorithm</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/find.html" title="Function template find">find()</a></code>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="id-1.3.3.6.2.6"></a><p class="title"><b>Table 2.5. Erase/Replace</b></p>
<div class="table-contents"><table class="table" summary="Erase/Replace">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th align="left">Algorithm name</th>
<th align="left">Description</th>
<th align="left">Functions</th>
</tr></thead>
<tbody>
<tr>
<td align="left">replace/erase_first</td>
<td align="left">Replace/Erase the first occurrence of a string in the input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_first.html" title="Function template replace_first">replace_first()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_first_copy.html" title="Function replace_first_copy">replace_first_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ireplace_first.html" title="Function template ireplace_first">ireplace_first()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ireplace_first_copy.html" title="Function ireplace_first_copy">ireplace_first_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_first.html" title="Function template erase_first">erase_first()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_first_copy.html" title="Function erase_first_copy">erase_first_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ierase_first.html" title="Function template ierase_first">ierase_first()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ierase_first_copy.html" title="Function ierase_first_copy">ierase_first_copy()</a></code>
</td>
</tr>
<tr>
<td align="left">replace/erase_last</td>
<td align="left">Replace/Erase the last occurrence of a string in the input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_last.html" title="Function template replace_last">replace_last()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_last_copy.html" title="Function replace_last_copy">replace_last_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ireplace_last.html" title="Function template ireplace_last">ireplace_last()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ireplace_last_copy.html" title="Function ireplace_last_copy">ireplace_last_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_last.html" title="Function template erase_last">erase_last()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_last_copy.html" title="Function erase_last_copy">erase_last_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ierase_last.html" title="Function template ierase_last">ierase_last()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ierase_last_copy.html" title="Function ierase_last_copy">ierase_last_copy()</a></code>
</td>
</tr>
<tr>
<td align="left">replace/erase_nth</td>
<td align="left">Replace/Erase the nth (zero-indexed) occurrence of a string in the input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_nth.html" title="Function template replace_nth">replace_nth()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_nth_copy.html" title="Function replace_nth_copy">replace_nth_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ireplace_nth.html" title="Function template ireplace_nth">ireplace_nth()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ireplace_nth_copy.html" title="Function ireplace_nth_copy">ireplace_nth_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_nth.html" title="Function template erase_nth">erase_nth()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_nth_copy.html" title="Function erase_nth_copy">erase_nth_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ierase_nth.html" title="Function template ierase_nth">ierase_nth()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ierase_nth_copy.html" title="Function ierase_nth_copy">ierase_nth_copy()</a></code>
</td>
</tr>
<tr>
<td align="left">replace/erase_all</td>
<td align="left">Replace/Erase the all occurrences of a string in the input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_all.html" title="Function template replace_all">replace_all()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_all_copy.html" title="Function replace_all_copy">replace_all_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ireplace_all.html" title="Function template ireplace_all">ireplace_all()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ireplace_all_copy.html" title="Function ireplace_all_copy">ireplace_all_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_all.html" title="Function template erase_all">erase_all()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_all_copy.html" title="Function erase_all_copy">erase_all_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ierase_all.html" title="Function template ierase_all">ierase_all()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ierase_all_copy.html" title="Function ierase_all_copy">ierase_all_copy()</a></code>
</td>
</tr>
<tr>
<td align="left">replace/erase_head</td>
<td align="left">Replace/Erase the head of the input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_head.html" title="Function template replace_head">replace_head()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_head_copy.html" title="Function replace_head_copy">replace_head_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_head.html" title="Function template erase_head">erase_head()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_head_copy.html" title="Function erase_head_copy">erase_head_copy()</a></code>
<br>
</td>
</tr>
<tr>
<td align="left">replace/erase_tail</td>
<td align="left">Replace/Erase the tail of the input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_tail.html" title="Function template replace_tail">replace_tail()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_tail_copy.html" title="Function replace_tail_copy">replace_tail_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_tail.html" title="Function template erase_tail">erase_tail()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_tail_copy.html" title="Function erase_tail_copy">erase_tail_copy()</a></code>
<br>
</td>
</tr>
<tr>
<td align="left">replace/erase_regex</td>
<td align="left">Replace/Erase a substring matching the given regular expression</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_regex.html" title="Function template replace_regex">replace_regex()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_regex_copy.html" title="Function replace_regex_copy">replace_regex_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_regex.html" title="Function template erase_regex">erase_regex()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_regex_copy.html" title="Function erase_regex_copy">erase_regex_copy()</a></code>
<br>
</td>
</tr>
<tr>
<td align="left">replace/erase_regex_all</td>
<td align="left">Replace/Erase all substrings matching the given regular expression</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_all_regex.html" title="Function template replace_all_regex">replace_all_regex()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/replace_all_regex_copy.html" title="Function replace_all_regex_copy">replace_all_regex_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_all_regex.html" title="Function template erase_all_regex">erase_all_regex()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/erase_all_regex_copy.html" title="Function erase_all_regex_copy">erase_all_regex_copy()</a></code>
<br>
</td>
</tr>
<tr>
<td align="left">find_format</td>
<td align="left">Generic replace algorithm</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/find_format.html" title="Function template find_format">find_format()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/find_format_copy.html" title="Function find_format_copy">find_format_copy()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/find_format_all.html" title="Function template find_format_all">find_format_all()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/find_format_all_copy.html" title="Function find_format_all_copy">find_format_all_copy()()</a></code>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="id-1.3.3.6.2.7"></a><p class="title"><b>Table 2.6. Split</b></p>
<div class="table-contents"><table class="table" summary="Split">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th align="left">Algorithm name</th>
<th align="left">Description</th>
<th align="left">Functions</th>
</tr></thead>
<tbody>
<tr>
<td align="left">find_all</td>
<td align="left">Find/Extract all matching substrings in the input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/find_all.html" title="Function template find_all">find_all()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/ifind_all.html" title="Function template ifind_all">ifind_all()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/find_all_regex.html" title="Function template find_all_regex">find_all_regex()</a></code>
</td>
</tr>
<tr>
<td align="left">split</td>
<td align="left">Split input into parts</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/split.html" title="Function template split">split()</a></code>
<br>
<code class="computeroutput"><a class="link" href="../boost/algorithm/split_regex.html" title="Function template split_regex">split_regex()</a></code>
</td>
</tr>
<tr>
<td align="left">iter_find</td>
<td align="left">Iteratively apply the finder to the input to find all matching substrings</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/iter_find.html" title="Function template iter_find">iter_find()</a></code>
</td>
</tr>
<tr>
<td align="left">iter_split</td>
<td align="left">Use the finder to find matching substrings in the input and use them as separators to split the input into parts</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/iter_split.html" title="Function template iter_split">iter_split()</a></code>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="id-1.3.3.6.2.8"></a><p class="title"><b>Table 2.7. Join</b></p>
<div class="table-contents"><table class="table" summary="Join">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th align="left">Algorithm name</th>
<th align="left">Description</th>
<th align="left">Functions</th>
</tr></thead>
<tbody>
<tr>
<td align="left">join</td>
<td align="left">Join all elements in a container into a single string</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/join.html" title="Function template join">join</a></code>
</td>
</tr>
<tr>
<td align="left">join_if</td>
<td align="left">Join all elements in a container that satisfies the condition into a single string</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/join_if_1_3_3_9_14_3_1_2.html" title="Function template join_if">join_if()</a></code>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.6.3"></a>Finders and Formatters</h3></div></div></div>
<div class="table">
<a name="id-1.3.3.6.3.2"></a><p class="title"><b>Table 2.8. Finders</b></p>
<div class="table-contents"><table class="table" summary="Finders">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th align="left">Finder</th>
<th align="left">Description</th>
<th align="left">Generators</th>
</tr></thead>
<tbody>
<tr>
<td align="left">first_finder</td>
<td align="left">Search for the first match of the string in an input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/first_finder.html" title="Function first_finder">first_finder()</a></code>
</td>
</tr>
<tr>
<td align="left">last_finder</td>
<td align="left">Search for the last match of the string in an input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/last_finder.html" title="Function last_finder">last_finder()</a></code>
</td>
</tr>
<tr>
<td align="left">nth_finder</td>
<td align="left">Search for the nth (zero-indexed) match of the string in an input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/nth_finder.html" title="Function nth_finder">nth_finder()</a></code>
</td>
</tr>
<tr>
<td align="left">head_finder</td>
<td align="left">Retrieve the head of an input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/head_finder.html" title="Function head_finder">head_finder()</a></code>
</td>
</tr>
<tr>
<td align="left">tail_finder</td>
<td align="left">Retrieve the tail of an input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/tail_finder.html" title="Function tail_finder">tail_finder()</a></code>
</td>
</tr>
<tr>
<td align="left">token_finder</td>
<td align="left">Search for a matching token in an input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/token_finder.html" title="Function template token_finder">token_finder()</a></code>
</td>
</tr>
<tr>
<td align="left">range_finder</td>
<td align="left">Do no search, always returns the given range</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/range_finder.html" title="Function range_finder">range_finder()</a></code>
</td>
</tr>
<tr>
<td align="left">regex_finder</td>
<td align="left">Search for a substring matching the given regex</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/regex_finder.html" title="Function template regex_finder">regex_finder()</a></code>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="id-1.3.3.6.3.3"></a><p class="title"><b>Table 2.9. Formatters</b></p>
<div class="table-contents"><table class="table" summary="Formatters">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th align="left">Formatter</th>
<th align="left">Description</th>
<th align="left">Generators</th>
</tr></thead>
<tbody>
<tr>
<td align="left">const_formatter</td>
<td align="left">Constant formatter. Always return the specified string</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/const_formatter.html" title="Function template const_formatter">const_formatter()</a></code>
</td>
</tr>
<tr>
<td align="left">identity_formatter</td>
<td align="left">Identity formatter. Return unmodified input input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/identity_formatter.html" title="Function template identity_formatter">identity_formatter()</a></code>
</td>
</tr>
<tr>
<td align="left">empty_formatter</td>
<td align="left">Null formatter. Always return an empty string</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/empty_formatter.html" title="Function template empty_formatter">empty_formatter()</a></code>
</td>
</tr>
<tr>
<td align="left">regex_formatter</td>
<td align="left">Regex formatter. Format regex match using the specification in the format string</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/regex_formatter.html" title="Function template regex_formatter">regex_formatter()</a></code>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.6.4"></a>Iterators</h3></div></div></div>
<div class="table">
<a name="id-1.3.3.6.4.2"></a><p class="title"><b>Table 2.10. Find Iterators</b></p>
<div class="table-contents"><table class="table" summary="Find Iterators">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th align="left">Iterator name</th>
<th align="left">Description</th>
<th align="left">Iterator class</th>
</tr></thead>
<tbody>
<tr>
<td align="left">find_iterator</td>
<td align="left">Iterates through matching substrings in the input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/find_iterator.html" title="Class template find_iterator">find_iterator</a></code>
</td>
</tr>
<tr>
<td align="left">split_iterator</td>
<td align="left">Iterates through gaps between matching substrings in the input</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/split_iterator.html" title="Class template split_iterator">split_iterator</a></code>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.6.5"></a>Classification</h3></div></div></div>
<div class="table">
<a name="id-1.3.3.6.5.2"></a><p class="title"><b>Table 2.11. Predicates</b></p>
<div class="table-contents"><table class="table" summary="Predicates">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th align="left">Predicate name</th>
<th align="left">Description</th>
<th align="left">Generator</th>
</tr></thead>
<tbody>
<tr>
<td align="left">is_classified</td>
<td align="left">Generic <code class="computeroutput">ctype</code> mask based classification</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/is_classified.html" title="Function is_classified">is_classified()</a></code>
</td>
</tr>
<tr>
<td align="left">is_space</td>
<td align="left">Recognize spaces</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/is_space.html" title="Function is_space">is_space()</a></code>
</td>
</tr>
<tr>
<td align="left">is_alnum</td>
<td align="left">Recognize alphanumeric characters</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/is_alnum.html" title="Function is_alnum">is_alnum()</a></code>
</td>
</tr>
<tr>
<td align="left">is_alpha</td>
<td align="left">Recognize letters</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/is_alpha.html" title="Function is_alpha">is_alpha()</a></code>
</td>
</tr>
<tr>
<td align="left">is_cntrl</td>
<td align="left">Recognize control characters</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/is_cntrl.html" title="Function is_cntrl">is_cntrl()</a></code>
</td>
</tr>
<tr>
<td align="left">is_digit</td>
<td align="left">Recognize decimal digits</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/is_digit.html" title="Function is_digit">is_digit()</a></code>
</td>
</tr>
<tr>
<td align="left">is_graph</td>
<td align="left">Recognize graphical characters</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/is_graph.html" title="Function is_graph">is_graph()</a></code>
</td>
</tr>
<tr>
<td align="left">is_lower</td>
<td align="left">Recognize lower case characters</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/is_lower.html" title="Function is_lower">is_lower()</a></code>
</td>
</tr>
<tr>
<td align="left">is_print</td>
<td align="left">Recognize printable characters</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/is_print.html" title="Function is_print">is_print()</a></code>
</td>
</tr>
<tr>
<td align="left">is_punct</td>
<td align="left">Recognize punctuation characters</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/is_punct.html" title="Function is_punct">is_punct()</a></code>
</td>
</tr>
<tr>
<td align="left">is_upper</td>
<td align="left">Recognize uppercase characters</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/is_upper.html" title="Function is_upper">is_upper()</a></code>
</td>
</tr>
<tr>
<td align="left">is_xdigit</td>
<td align="left">Recognize hexadecimal digits</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/is_xdigit.html" title="Function is_xdigit">is_xdigit()</a></code>
</td>
</tr>
<tr>
<td align="left">is_any_of</td>
<td align="left">Recognize any of a sequence of characters</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/is_any_of.html" title="Function template is_any_of">is_any_of()</a></code>
</td>
</tr>
<tr>
<td align="left">is_from_range</td>
<td align="left">Recognize characters inside a min..max range</td>
<td align="left">
<code class="computeroutput"><a class="link" href="../boost/algorithm/is_from_range.html" title="Function template is_from_range">is_from_range()</a></code>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break">
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2002-2004 Pavol Droba<p>Use, modification and distribution is subject to the Boost
Software License, Version 1.0. (See accompanying file
<code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="usage.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="design.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,83 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Rationale</title>
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../string_algo.html" title="Chapter 2. Boost String Algorithms Library">
<link rel="prev" href="../boost/algorithm/trim_fill.html" title="Function template trim_fill">
<link rel="next" href="env.html" title="Environment">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
<td align="center"><a href="../../../index.html">Home</a></td>
<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../boost/algorithm/trim_fill.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="env.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="string_algo.rationale"></a>Rationale</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="rationale.html#id-1.3.3.10.2">Locales</a></span></dt>
<dt><span class="section"><a href="rationale.html#string_algo.regex">Regular Expressions</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.10.2"></a>Locales</h3></div></div></div>
<p>
Locales have a very close relation to string processing. They contain information about
the character sets and are used, for example, to change the case of characters and
to classify the characters.
</p>
<p>
C++ allows to work with multiple different instances of locales at once. If an algorithm
manipulates some data in a way that requires the usage of locales, there must be a way
to specify them. However, one instance of locales is sufficient for most of the applications,
and for a user it could be very tedious to specify which locales to use at every place
where it is needed.
</p>
<p>
Fortunately, the C++ standard allows to specify the <span class="emphasis"><em>global</em></span> locales (using static member
function <code class="computeroutput">std:locale::global()</code>). When instantiating an
<code class="computeroutput">std::locale</code> class without explicit information, the instance will
be initialized with the <span class="emphasis"><em>global</em></span> locale. This implies, that if an algorithm needs a locale,
it should have an <code class="computeroutput">std::locale</code> parameter defaulting to <code class="computeroutput">std::locale()</code>.
If a user needs to specify locales explicitly, she can do so. Otherwise the <span class="emphasis"><em>global</em></span>
locales are used.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="string_algo.regex"></a>Regular Expressions</h3></div></div></div>
<p>
Regular expressions are an essential part of text processing. For this reason, the library
also provides regex variants of some algorithms. The library does not attempt to replace
Boost.Regex; it merely wraps its functionality in a new interface.
As a part of this library, regex algorithms integrate smoothly with other components, which
brings additional value.
</p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2002-2004 Pavol Droba<p>Use, modification and distribution is subject to the Boost
Software License, Version 1.0. (See accompanying file
<code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../boost/algorithm/trim_fill.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="env.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,838 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Reference</title>
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../string_algo.html" title="Chapter 2. Boost String Algorithms Library">
<link rel="prev" href="concept.html" title="Concepts">
<link rel="next" href="../boost/algorithm/to_lower_copy.html" title="Function to_lower_copy">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
<td align="center"><a href="../../../index.html">Home</a></td>
<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="concept.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="../boost/algorithm/to_lower_copy.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="string_algo.reference"></a>Reference</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string_hpp">Header &lt;boost/algorithm/string.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.case_conv_hpp">Header &lt;boost/algorithm/string/case_conv.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.classification_hpp">Header &lt;boost/algorithm/string/classification.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.compare_hpp">Header &lt;boost/algorithm/string/compare.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.concept_hpp">Header &lt;boost/algorithm/string/concept.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.constants_hpp">Header &lt;boost/algorithm/string/constants.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.erase_hpp">Header &lt;boost/algorithm/string/erase.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.find_hpp">Header &lt;boost/algorithm/string/find.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.find_format_hpp">Header &lt;boost/algorithm/string/find_format.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.find_iterator_hpp">Header &lt;boost/algorithm/string/find_iterator.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.finder_hpp">Header &lt;boost/algorithm/string/finder.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.formatter_hpp">Header &lt;boost/algorithm/string/formatter.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.iter_find_hpp">Header &lt;boost/algorithm/string/iter_find.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.join_hpp">Header &lt;boost/algorithm/string/join.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.predicate_hpp">Header &lt;boost/algorithm/string/predicate.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.regex_hpp">Header &lt;boost/algorithm/string/regex.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.regex_find_format_hpp">Header &lt;boost/algorithm/string/regex_find_format.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.replace_hpp">Header &lt;boost/algorithm/string/replace.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.sequence_traits_hpp">Header &lt;boost/algorithm/string/sequence_traits.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.split_hpp">Header &lt;boost/algorithm/string/split.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.std_containers_traits_hpp">Header &lt;boost/algorithm/string/std_containers_traits.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.trim_hpp">Header &lt;boost/algorithm/string/trim.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string.trim_all_hpp">Header &lt;boost/algorithm/string/trim_all.hpp&gt;</a></span></dt>
<dt><span class="section"><a href="reference.html#header.boost.algorithm.string_regex_hpp">Header &lt;boost/algorithm/string_regex.hpp&gt;</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string.hpp" target="_top">boost/algorithm/string.hpp</a>&gt;</h3></div></div></div>
<p>Cumulative include for string_algo library </p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.case_conv_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/case_conv.hpp" target="_top">boost/algorithm/string/case_conv.hpp</a>&gt;</h3></div></div></div>
<p>Defines sequence case-conversion algorithms. Algorithms convert each element in the input sequence to the desired case using provided locales. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/to_lower_copy.html" title="Function to_lower_copy"><span class="identifier">to_lower_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/to_lower_copy.html" title="Function to_lower_copy"><span class="identifier">to_lower_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> WritableRangeT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/to_lower.html" title="Function template to_lower"><span class="identifier">to_lower</span></a><span class="special">(</span><span class="identifier">WritableRangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/to_upper_copy.html" title="Function to_upper_copy"><span class="identifier">to_upper_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/to_upper_copy.html" title="Function to_upper_copy"><span class="identifier">to_upper_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> WritableRangeT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/to_upper.html" title="Function template to_upper"><span class="identifier">to_upper</span></a><span class="special">(</span><span class="identifier">WritableRangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.classification_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/classification.hpp" target="_top">boost/algorithm/string/classification.hpp</a>&gt;</h3></div></div></div>
<p>Classification predicates are included in the library to give some more convenience when using algorithms like <code class="computeroutput">trim()</code> and <code class="computeroutput">all()</code>. They wrap functionality of STL classification functions ( e.g. <code class="computeroutput">std::isspace()</code> ) into generic functors. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/is_classified.html" title="Function is_classified"><span class="identifier">is_classified</span></a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ctype_base</span><span class="special">::</span><span class="identifier">mask</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/is_space.html" title="Function is_space"><span class="identifier">is_space</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/is_alnum.html" title="Function is_alnum"><span class="identifier">is_alnum</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/is_alpha.html" title="Function is_alpha"><span class="identifier">is_alpha</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/is_cntrl.html" title="Function is_cntrl"><span class="identifier">is_cntrl</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/is_digit.html" title="Function is_digit"><span class="identifier">is_digit</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/is_graph.html" title="Function is_graph"><span class="identifier">is_graph</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/is_lower.html" title="Function is_lower"><span class="identifier">is_lower</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/is_print.html" title="Function is_print"><span class="identifier">is_print</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/is_punct.html" title="Function is_punct"><span class="identifier">is_punct</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/is_upper.html" title="Function is_upper"><span class="identifier">is_upper</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/is_xdigit.html" title="Function is_xdigit"><span class="identifier">is_xdigit</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">&gt;</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/is_any_of.html" title="Function template is_any_of"><span class="identifier">is_any_of</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">&gt;</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/is_from_range.html" title="Function template is_from_range"><span class="identifier">is_from_range</span></a><span class="special">(</span><span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">CharT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Pred1T<span class="special">,</span> <span class="keyword">typename</span> Pred2T<span class="special">&gt;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/operator__.html" title="Function template operator&amp;&amp;"><span class="keyword">operator</span><span class="special">&amp;&amp;</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">predicate_facade</span><span class="special">&lt;</span> <span class="identifier">Pred1T</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">predicate_facade</span><span class="special">&lt;</span> <span class="identifier">Pred2T</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Pred1T<span class="special">,</span> <span class="keyword">typename</span> Pred2T<span class="special">&gt;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/operator_1_3_3_9_3_2_1_16.html" title="Function template operator||"><span class="keyword">operator</span><span class="special">||</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">predicate_facade</span><span class="special">&lt;</span> <span class="identifier">Pred1T</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">predicate_facade</span><span class="special">&lt;</span> <span class="identifier">Pred2T</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> PredT<span class="special">&gt;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/operator_.html" title="Function template operator!"><span class="keyword">operator</span><span class="special">!</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">predicate_facade</span><span class="special">&lt;</span> <span class="identifier">PredT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.compare_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/compare.hpp" target="_top">boost/algorithm/string/compare.hpp</a>&gt;</h3></div></div></div>
<p>Defines element comparison predicates. Many algorithms in this library can take an additional argument with a predicate used to compare elements. This makes it possible, for instance, to have case insensitive versions of the algorithms. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">struct</span> <a class="link" href="../boost/algorithm/is_equal.html" title="Struct is_equal">is_equal</a><span class="special">;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/algorithm/is_iequal.html" title="Struct is_iequal">is_iequal</a><span class="special">;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/algorithm/is_iless.html" title="Struct is_iless">is_iless</a><span class="special">;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/algorithm/is_less.html" title="Struct is_less">is_less</a><span class="special">;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/algorithm/is_not_greater.html" title="Struct is_not_greater">is_not_greater</a><span class="special">;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/algorithm/is_not_igreater.html" title="Struct is_not_igreater">is_not_igreater</a><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.concept_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/concept.hpp" target="_top">boost/algorithm/string/concept.hpp</a>&gt;</h3></div></div></div>
<p>Defines concepts used in string_algo library </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FinderT<span class="special">,</span> <span class="keyword">typename</span> IteratorT<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/algorithm/FinderConcept.html" title="Struct template FinderConcept">FinderConcept</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FormatterT<span class="special">,</span> <span class="keyword">typename</span> FinderT<span class="special">,</span> <span class="keyword">typename</span> IteratorT<span class="special">&gt;</span>
<span class="keyword">struct</span> <a class="link" href="../boost/algorithm/FormatterConcept.html" title="Struct template FormatterConcept">FormatterConcept</a><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.constants_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/constants.hpp" target="_top">boost/algorithm/string/constants.hpp</a>&gt;</h3></div></div></div>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">enum</span> <a class="link" href="../boost/algorithm/token_compress_mode_type.html" title="Type token_compress_mode_type">token_compress_mode_type</a><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.erase_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/erase.hpp" target="_top">boost/algorithm/string/erase.hpp</a>&gt;</h3></div></div></div>
<p>Defines various erase algorithms. Each algorithm removes part(s) of the input according to a searching criteria. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/erase_range_copy.html" title="Function erase_range_copy"><span class="identifier">erase_range_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_const_iterator</span><span class="special">&lt;</span> <span class="identifier">RangeT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/erase_range_copy.html" title="Function erase_range_copy"><span class="identifier">erase_range_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_const_iterator</span><span class="special">&lt;</span> <span class="identifier">SequenceT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/erase_range.html" title="Function template erase_range"><span class="identifier">erase_range</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">SequenceT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/erase_first_copy.html" title="Function erase_first_copy"><span class="identifier">erase_first_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/erase_first_copy.html" title="Function erase_first_copy"><span class="identifier">erase_first_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/erase_first.html" title="Function template erase_first"><span class="identifier">erase_first</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/ierase_first_copy.html" title="Function ierase_first_copy"><span class="identifier">ierase_first_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/ierase_first_copy.html" title="Function ierase_first_copy"><span class="identifier">ierase_first_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/ierase_first.html" title="Function template ierase_first"><span class="identifier">ierase_first</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/erase_last_copy.html" title="Function erase_last_copy"><span class="identifier">erase_last_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/erase_last_copy.html" title="Function erase_last_copy"><span class="identifier">erase_last_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/erase_last.html" title="Function template erase_last"><span class="identifier">erase_last</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/ierase_last_copy.html" title="Function ierase_last_copy"><span class="identifier">ierase_last_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/ierase_last_copy.html" title="Function ierase_last_copy"><span class="identifier">ierase_last_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/ierase_last.html" title="Function template ierase_last"><span class="identifier">ierase_last</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/erase_nth_copy.html" title="Function erase_nth_copy"><span class="identifier">erase_nth_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/erase_nth_copy.html" title="Function erase_nth_copy"><span class="identifier">erase_nth_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/erase_nth.html" title="Function template erase_nth"><span class="identifier">erase_nth</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/ierase_nth_copy.html" title="Function ierase_nth_copy"><span class="identifier">ierase_nth_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/ierase_nth_copy.html" title="Function ierase_nth_copy"><span class="identifier">ierase_nth_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/ierase_nth.html" title="Function template ierase_nth"><span class="identifier">ierase_nth</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/erase_all_copy.html" title="Function erase_all_copy"><span class="identifier">erase_all_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/erase_all_copy.html" title="Function erase_all_copy"><span class="identifier">erase_all_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/erase_all.html" title="Function template erase_all"><span class="identifier">erase_all</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/ierase_all_copy.html" title="Function ierase_all_copy"><span class="identifier">ierase_all_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/ierase_all_copy.html" title="Function ierase_all_copy"><span class="identifier">ierase_all_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/ierase_all.html" title="Function template ierase_all"><span class="identifier">ierase_all</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span> <a class="link" href="../boost/algorithm/erase_head_copy.html" title="Function erase_head_copy"><span class="identifier">erase_head_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/erase_head_copy.html" title="Function erase_head_copy"><span class="identifier">erase_head_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span> <span class="keyword">void</span> <a class="link" href="../boost/algorithm/erase_head.html" title="Function template erase_head"><span class="identifier">erase_head</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span> <a class="link" href="../boost/algorithm/erase_tail_copy.html" title="Function erase_tail_copy"><span class="identifier">erase_tail_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/erase_tail_copy.html" title="Function erase_tail_copy"><span class="identifier">erase_tail_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span> <span class="keyword">void</span> <a class="link" href="../boost/algorithm/erase_tail.html" title="Function template erase_tail"><span class="identifier">erase_tail</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.find_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/find.hpp" target="_top">boost/algorithm/string/find.hpp</a>&gt;</h3></div></div></div>
<p>Defines a set of find algorithms. The algorithms are searching for a substring of the input. The result is given as an <code class="computeroutput">iterator_range</code> delimiting the substring. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> FinderT<span class="special">&gt;</span>
<span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">RangeT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/find.html" title="Function template find"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">FinderT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">Range1T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/find_first.html" title="Function template find_first"><span class="identifier">find_first</span></a><span class="special">(</span><span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">Range1T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/ifind_first.html" title="Function template ifind_first"><span class="identifier">ifind_first</span></a><span class="special">(</span><span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">Range1T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/find_last.html" title="Function template find_last"><span class="identifier">find_last</span></a><span class="special">(</span><span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">Range1T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/ifind_last.html" title="Function template ifind_last"><span class="identifier">ifind_last</span></a><span class="special">(</span><span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">Range1T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/find_nth.html" title="Function template find_nth"><span class="identifier">find_nth</span></a><span class="special">(</span><span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">Range1T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/ifind_nth.html" title="Function template ifind_nth"><span class="identifier">ifind_nth</span></a><span class="special">(</span><span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">RangeT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/find_head.html" title="Function template find_head"><span class="identifier">find_head</span></a><span class="special">(</span><span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">RangeT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/find_tail.html" title="Function template find_tail"><span class="identifier">find_tail</span></a><span class="special">(</span><span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">RangeT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/find_token.html" title="Function template find_token"><span class="identifier">find_token</span></a><span class="special">(</span><span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">,</span>
<span class="identifier">token_compress_mode_type</span> <span class="special">=</span> <span class="identifier">token_compress_off</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.find_format_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/find_format.hpp" target="_top">boost/algorithm/string/find_format.hpp</a>&gt;</h3></div></div></div>
<p>Defines generic replace algorithms. Each algorithm replaces part(s) of the input. The part to be replaced is looked up using a Finder object. Result of finding is then used by a Formatter object to generate the replacement. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> FinderT<span class="special">,</span>
<span class="keyword">typename</span> FormatterT<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/find_format_copy.html" title="Function find_format_copy"><span class="identifier">find_format_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">FinderT</span><span class="special">,</span> <span class="identifier">FormatterT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> FinderT<span class="special">,</span> <span class="keyword">typename</span> FormatterT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/find_format_copy.html" title="Function find_format_copy"><span class="identifier">find_format_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">FinderT</span><span class="special">,</span> <span class="identifier">FormatterT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> FinderT<span class="special">,</span> <span class="keyword">typename</span> FormatterT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/find_format.html" title="Function template find_format"><span class="identifier">find_format</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">FinderT</span><span class="special">,</span> <span class="identifier">FormatterT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> FinderT<span class="special">,</span>
<span class="keyword">typename</span> FormatterT<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/find_format_all_copy.html" title="Function find_format_all_copy"><span class="identifier">find_format_all_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">FinderT</span><span class="special">,</span>
<span class="identifier">FormatterT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> FinderT<span class="special">,</span> <span class="keyword">typename</span> FormatterT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/find_format_all_copy.html" title="Function find_format_all_copy"><span class="identifier">find_format_all_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">FinderT</span><span class="special">,</span> <span class="identifier">FormatterT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> FinderT<span class="special">,</span> <span class="keyword">typename</span> FormatterT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/find_format_all.html" title="Function template find_format_all"><span class="identifier">find_format_all</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">FinderT</span><span class="special">,</span> <span class="identifier">FormatterT</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.find_iterator_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/find_iterator.hpp" target="_top">boost/algorithm/string/find_iterator.hpp</a>&gt;</h3></div></div></div>
<p>Defines find iterator classes. Find iterator repeatedly applies a Finder to the specified input string to search for matches. Dereferencing the iterator yields the current match or a range between the last and the current match depending on the iterator used. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IteratorT<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/algorithm/find_iterator.html" title="Class template find_iterator">find_iterator</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IteratorT<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/algorithm/split_iterator.html" title="Class template split_iterator">split_iterator</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> FinderT<span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/find_iterator.html" title="Class template find_iterator">find_iterator</a><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">RangeT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/make_find_iterator.html" title="Function template make_find_iterator"><span class="identifier">make_find_iterator</span></a><span class="special">(</span><span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">FinderT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> FinderT<span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/split_iterator.html" title="Class template split_iterator">split_iterator</a><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">RangeT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/make_split_iterator.html" title="Function template make_split_iterator"><span class="identifier">make_split_iterator</span></a><span class="special">(</span><span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">FinderT</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.finder_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/finder.hpp" target="_top">boost/algorithm/string/finder.hpp</a>&gt;</h3></div></div></div>
<p>Defines Finder generators. Finder object is a functor which is able to find a substring matching a specific criteria in the input. Finders are used as a pluggable components for replace, find and split facilities. This header contains generator functions for finders provided in this library. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">&gt;</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/first_finder.html" title="Function first_finder"><span class="identifier">first_finder</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/first_finder.html" title="Function first_finder"><span class="identifier">first_finder</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">&gt;</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/last_finder.html" title="Function last_finder"><span class="identifier">last_finder</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/last_finder.html" title="Function last_finder"><span class="identifier">last_finder</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">&gt;</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/nth_finder.html" title="Function nth_finder"><span class="identifier">nth_finder</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/nth_finder.html" title="Function nth_finder"><span class="identifier">nth_finder</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/head_finder.html" title="Function head_finder"><span class="identifier">head_finder</span></a><span class="special">(</span><span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/tail_finder.html" title="Function tail_finder"><span class="identifier">tail_finder</span></a><span class="special">(</span><span class="keyword">int</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/token_finder.html" title="Function template token_finder"><span class="identifier">token_finder</span></a><span class="special">(</span><span class="identifier">PredicateT</span><span class="special">,</span>
<span class="identifier">token_compress_mode_type</span> <span class="special">=</span> <span class="identifier">token_compress_off</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ForwardIteratorT<span class="special">&gt;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/range_finder.html" title="Function range_finder"><span class="identifier">range_finder</span></a><span class="special">(</span><span class="identifier">ForwardIteratorT</span><span class="special">,</span> <span class="identifier">ForwardIteratorT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> ForwardIteratorT<span class="special">&gt;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/range_finder.html" title="Function range_finder"><span class="identifier">range_finder</span></a><span class="special">(</span><span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="identifier">ForwardIteratorT</span> <span class="special">&gt;</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.formatter_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/formatter.hpp" target="_top">boost/algorithm/string/formatter.hpp</a>&gt;</h3></div></div></div>
<p>Defines Formatter generators. Formatter is a functor which formats a string according to given parameters. A Formatter works in conjunction with a Finder. A Finder can provide additional information for a specific Formatter. An example of such a cooperation is regex_finder and regex_formatter.</p>
<p>Formatters are used as pluggable components for replace facilities. This header contains generator functions for the Formatters provided in this library. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">&gt;</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/const_formatter.html" title="Function template const_formatter"><span class="identifier">const_formatter</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">&gt;</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/identity_formatter.html" title="Function template identity_formatter"><span class="identifier">identity_formatter</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">&gt;</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/empty_formatter.html" title="Function template empty_formatter"><span class="identifier">empty_formatter</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FinderT<span class="special">&gt;</span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/dissect_formatter.html" title="Function template dissect_formatter"><span class="identifier">dissect_formatter</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">FinderT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.iter_find_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/iter_find.hpp" target="_top">boost/algorithm/string/iter_find.hpp</a>&gt;</h3></div></div></div>
<p>Defines generic split algorithms. Split algorithms can be used to divide a sequence into several part according to a given criteria. Result is given as a 'container of containers' where elements are copies or references to extracted parts.</p>
<p>There are two algorithms provided. One iterates over matching substrings, the other one over the gaps between these matches. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceSequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> FinderT<span class="special">&gt;</span>
<span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span> <a class="link" href="../boost/algorithm/iter_find.html" title="Function template iter_find"><span class="identifier">iter_find</span></a><span class="special">(</span><span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">RangeT</span> <span class="special">&amp;&amp;</span><span class="special">,</span> <span class="identifier">FinderT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceSequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> FinderT<span class="special">&gt;</span>
<span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span> <a class="link" href="../boost/algorithm/iter_split.html" title="Function template iter_split"><span class="identifier">iter_split</span></a><span class="special">(</span><span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">RangeT</span> <span class="special">&amp;&amp;</span><span class="special">,</span> <span class="identifier">FinderT</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.join_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/join.hpp" target="_top">boost/algorithm/string/join.hpp</a>&gt;</h3></div></div></div>
<p>Defines join algorithm.</p>
<p>Join algorithm is a counterpart to split algorithms. It joins strings from a 'list' by adding user defined separator. Additionally there is a version that allows simple filtering by providing a predicate. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceSequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">&gt;</span>
<span class="identifier">range_value</span><span class="special">&lt;</span> <span class="identifier">SequenceSequenceT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span>
<a class="link" href="../boost/algorithm/join.html" title="Function template join"><span class="identifier">join</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceSequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span>
<span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="identifier">range_value</span><span class="special">&lt;</span> <span class="identifier">SequenceSequenceT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span>
<a class="link" href="../boost/algorithm/join_if_1_3_3_9_14_3_1_2.html" title="Function template join_if"><span class="identifier">join_if</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.predicate_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/predicate.hpp" target="_top">boost/algorithm/string/predicate.hpp</a>&gt;</h3></div></div></div>
<p>Defines string-related predicates. The predicates determine whether a substring is contained in the input string under various conditions: a string starts with the substring, ends with the substring, simply contains the substring or if both strings are equal. Additionaly the algorithm <code class="computeroutput">all()</code> checks all elements of a container to satisfy a condition.</p>
<p>All predicates provide the strong exception guarantee. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/starts_with.html" title="Function starts_with"><span class="identifier">starts_with</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/starts_with.html" title="Function starts_with"><span class="identifier">starts_with</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/istarts_with.html" title="Function template istarts_with"><span class="identifier">istarts_with</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/ends_with.html" title="Function ends_with"><span class="identifier">ends_with</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/ends_with.html" title="Function ends_with"><span class="identifier">ends_with</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/iends_with.html" title="Function template iends_with"><span class="identifier">iends_with</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/contains.html" title="Function contains"><span class="identifier">contains</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/contains.html" title="Function contains"><span class="identifier">contains</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/icontains.html" title="Function template icontains"><span class="identifier">icontains</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/equals.html" title="Function equals"><span class="identifier">equals</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/equals.html" title="Function equals"><span class="identifier">equals</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/iequals.html" title="Function template iequals"><span class="identifier">iequals</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/lexicographical_compare.html" title="Function lexicographical_compare"><span class="identifier">lexicographical_compare</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/lexicographical_compare.html" title="Function lexicographical_compare"><span class="identifier">lexicographical_compare</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/ilexicographical_compare.html" title="Function template ilexicographical_compare"><span class="identifier">ilexicographical_compare</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="keyword">bool</span> <a class="link" href="../boost/algorithm/all.html" title="Function template all"><span class="identifier">all</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.regex_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/regex.hpp" target="_top">boost/algorithm/string/regex.hpp</a>&gt;</h3></div></div></div>
<p>Defines regex variants of the algorithms. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> RegexTraitsT<span class="special">&gt;</span>
<span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">RangeT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span>
<a class="link" href="../boost/algorithm/find_regex.html" title="Function template find_regex"><span class="identifier">find_regex</span></a><span class="special">(</span><span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span>
<span class="keyword">typename</span> RegexTraitsT<span class="special">,</span> <span class="keyword">typename</span> FormatStringTraitsT<span class="special">,</span>
<span class="keyword">typename</span> FormatStringAllocatorT<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/replace_regex_copy.html" title="Function replace_regex_copy"><span class="identifier">replace_regex_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">FormatStringTraitsT</span><span class="special">,</span> <span class="identifier">FormatStringAllocatorT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">|</span><span class="identifier">format_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> RegexTraitsT<span class="special">,</span>
<span class="keyword">typename</span> FormatStringTraitsT<span class="special">,</span> <span class="keyword">typename</span> FormatStringAllocatorT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/replace_regex_copy.html" title="Function replace_regex_copy"><span class="identifier">replace_regex_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">FormatStringTraitsT</span><span class="special">,</span> <span class="identifier">FormatStringAllocatorT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">|</span><span class="identifier">format_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> RegexTraitsT<span class="special">,</span>
<span class="keyword">typename</span> FormatStringTraitsT<span class="special">,</span> <span class="keyword">typename</span> FormatStringAllocatorT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/replace_regex.html" title="Function template replace_regex"><span class="identifier">replace_regex</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">FormatStringTraitsT</span><span class="special">,</span> <span class="identifier">FormatStringAllocatorT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">|</span><span class="identifier">format_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span>
<span class="keyword">typename</span> RegexTraitsT<span class="special">,</span> <span class="keyword">typename</span> FormatStringTraitsT<span class="special">,</span>
<span class="keyword">typename</span> FormatStringAllocatorT<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/replace_all_regex_copy.html" title="Function replace_all_regex_copy"><span class="identifier">replace_all_regex_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">FormatStringTraitsT</span><span class="special">,</span> <span class="identifier">FormatStringAllocatorT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">|</span><span class="identifier">format_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> RegexTraitsT<span class="special">,</span>
<span class="keyword">typename</span> FormatStringTraitsT<span class="special">,</span> <span class="keyword">typename</span> FormatStringAllocatorT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/replace_all_regex_copy.html" title="Function replace_all_regex_copy"><span class="identifier">replace_all_regex_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">FormatStringTraitsT</span><span class="special">,</span> <span class="identifier">FormatStringAllocatorT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">|</span><span class="identifier">format_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> RegexTraitsT<span class="special">,</span>
<span class="keyword">typename</span> FormatStringTraitsT<span class="special">,</span> <span class="keyword">typename</span> FormatStringAllocatorT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/replace_all_regex.html" title="Function template replace_all_regex"><span class="identifier">replace_all_regex</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">FormatStringTraitsT</span><span class="special">,</span> <span class="identifier">FormatStringAllocatorT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">|</span><span class="identifier">format_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span>
<span class="keyword">typename</span> RegexTraitsT<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/erase_regex_copy.html" title="Function erase_regex_copy"><span class="identifier">erase_regex_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> RegexTraitsT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/erase_regex_copy.html" title="Function erase_regex_copy"><span class="identifier">erase_regex_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> RegexTraitsT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/erase_regex.html" title="Function template erase_regex"><span class="identifier">erase_regex</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span>
<span class="keyword">typename</span> RegexTraitsT<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/erase_all_regex_copy.html" title="Function erase_all_regex_copy"><span class="identifier">erase_all_regex_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> RegexTraitsT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/erase_all_regex_copy.html" title="Function erase_all_regex_copy"><span class="identifier">erase_all_regex_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> RegexTraitsT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/erase_all_regex.html" title="Function template erase_all_regex"><span class="identifier">erase_all_regex</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceSequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span>
<span class="keyword">typename</span> RegexTraitsT<span class="special">&gt;</span>
<span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span>
<a class="link" href="../boost/algorithm/find_all_regex.html" title="Function template find_all_regex"><span class="identifier">find_all_regex</span></a><span class="special">(</span><span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceSequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span>
<span class="keyword">typename</span> RegexTraitsT<span class="special">&gt;</span>
<span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span>
<a class="link" href="../boost/algorithm/split_regex.html" title="Function template split_regex"><span class="identifier">split_regex</span></a><span class="special">(</span><span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceSequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> CharT<span class="special">,</span>
<span class="keyword">typename</span> RegexTraitsT<span class="special">&gt;</span>
<span class="identifier">range_value</span><span class="special">&lt;</span> <span class="identifier">SequenceSequenceT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span>
<a class="link" href="../boost/algorithm/join_if_1_3_3_9_16_2_1_12.html" title="Function template join_if"><span class="identifier">join_if</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.regex_find_format_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/regex_find_format.hpp" target="_top">boost/algorithm/string/regex_find_format.hpp</a>&gt;</h3></div></div></div>
<p>Defines the <code class="computeroutput">regex_finder</code> and <code class="computeroutput">regex_formatter</code> generators. These two functors are designed to work together. <code class="computeroutput">regex_formatter</code> uses additional information about a match contained in the regex_finder search result. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</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> RegexTraitsT<span class="special">&gt;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/regex_finder.html" title="Function template regex_finder"><span class="identifier">regex_finder</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">basic_regex</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">RegexTraitsT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">)</span><span class="special">;</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> TraitsT<span class="special">,</span> <span class="keyword">typename</span> AllocT<span class="special">&gt;</span>
<span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="../boost/algorithm/regex_formatter.html" title="Function template regex_formatter"><span class="identifier">regex_formatter</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">TraitsT</span><span class="special">,</span> <span class="identifier">AllocT</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">match_flag_type</span> <span class="special">=</span> <span class="identifier">format_default</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.replace_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/replace.hpp" target="_top">boost/algorithm/string/replace.hpp</a>&gt;</h3></div></div></div>
<p>Defines various replace algorithms. Each algorithm replaces part(s) of the input according to set of searching and replace criteria. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/replace_range_copy.html" title="Function replace_range_copy"><span class="identifier">replace_range_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_const_iterator</span><span class="special">&lt;</span> <span class="identifier">Range1T</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/replace_range_copy.html" title="Function replace_range_copy"><span class="identifier">replace_range_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_const_iterator</span><span class="special">&lt;</span> <span class="identifier">SequenceT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/replace_range.html" title="Function template replace_range"><span class="identifier">replace_range</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">iterator_range</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span> <span class="identifier">SequenceT</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">,</span>
<span class="keyword">typename</span> Range3T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/replace_first_copy.html" title="Function replace_first_copy"><span class="identifier">replace_first_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range3T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/replace_first_copy.html" title="Function replace_first_copy"><span class="identifier">replace_first_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/replace_first.html" title="Function template replace_first"><span class="identifier">replace_first</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">,</span>
<span class="keyword">typename</span> Range3T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/ireplace_first_copy.html" title="Function ireplace_first_copy"><span class="identifier">ireplace_first_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range3T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/ireplace_first_copy.html" title="Function ireplace_first_copy"><span class="identifier">ireplace_first_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/ireplace_first.html" title="Function template ireplace_first"><span class="identifier">ireplace_first</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">,</span>
<span class="keyword">typename</span> Range3T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/replace_last_copy.html" title="Function replace_last_copy"><span class="identifier">replace_last_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range3T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/replace_last_copy.html" title="Function replace_last_copy"><span class="identifier">replace_last_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/replace_last.html" title="Function template replace_last"><span class="identifier">replace_last</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">,</span>
<span class="keyword">typename</span> Range3T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/ireplace_last_copy.html" title="Function ireplace_last_copy"><span class="identifier">ireplace_last_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range3T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/ireplace_last_copy.html" title="Function ireplace_last_copy"><span class="identifier">ireplace_last_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/ireplace_last.html" title="Function template ireplace_last"><span class="identifier">ireplace_last</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">,</span>
<span class="keyword">typename</span> Range3T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/replace_nth_copy.html" title="Function replace_nth_copy"><span class="identifier">replace_nth_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range3T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/replace_nth_copy.html" title="Function replace_nth_copy"><span class="identifier">replace_nth_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/replace_nth.html" title="Function template replace_nth"><span class="identifier">replace_nth</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">,</span>
<span class="keyword">typename</span> Range3T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/ireplace_nth_copy.html" title="Function ireplace_nth_copy"><span class="identifier">ireplace_nth_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">int</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range3T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/ireplace_nth_copy.html" title="Function ireplace_nth_copy"><span class="identifier">ireplace_nth_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/ireplace_nth.html" title="Function template ireplace_nth"><span class="identifier">ireplace_nth</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">,</span>
<span class="keyword">typename</span> Range3T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/replace_all_copy.html" title="Function replace_all_copy"><span class="identifier">replace_all_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range3T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/replace_all_copy.html" title="Function replace_all_copy"><span class="identifier">replace_all_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/replace_all.html" title="Function template replace_all"><span class="identifier">replace_all</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">,</span>
<span class="keyword">typename</span> Range3T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/ireplace_all_copy.html" title="Function ireplace_all_copy"><span class="identifier">ireplace_all_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range3T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/ireplace_all_copy.html" title="Function ireplace_all_copy"><span class="identifier">ireplace_all_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/ireplace_all.html" title="Function template ireplace_all"><span class="identifier">ireplace_all</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/replace_head_copy.html" title="Function replace_head_copy"><span class="identifier">replace_head_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/replace_head_copy.html" title="Function replace_head_copy"><span class="identifier">replace_head_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/replace_head.html" title="Function template replace_head"><span class="identifier">replace_head</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/replace_tail_copy.html" title="Function replace_tail_copy"><span class="identifier">replace_tail_copy</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range1T</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/replace_tail_copy.html" title="Function replace_tail_copy"><span class="identifier">replace_tail_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/replace_tail.html" title="Function template replace_tail"><span class="identifier">replace_tail</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.sequence_traits_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/sequence_traits.hpp" target="_top">boost/algorithm/string/sequence_traits.hpp</a>&gt;</h3></div></div></div>
<p>Traits defined in this header are used by various algorithms to achieve better performance for specific containers. Traits provide fail-safe defaults. If a container supports some of these features, it is possible to specialize the specific trait for this container. For lacking compilers, it is possible of define an override for a specific tester function.</p>
<p>Due to a language restriction, it is not currently possible to define specializations for stl containers without including the corresponding header. To decrease the overhead needed by this inclusion, user can selectively include a specialization header for a specific container. They are located in boost/algorithm/string/stl directory. Alternatively she can include boost/algorithm/string/std_collection_traits.hpp header which contains specializations for all stl containers. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/algorithm/has_const_time_erase.html" title="Class template has_const_time_erase">has_const_time_erase</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/algorithm/has_const_time_insert.html" title="Class template has_const_time_insert">has_const_time_insert</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/algorithm/has_native_replace.html" title="Class template has_native_replace">has_native_replace</a><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/algorithm/has_stable_iterators.html" title="Class template has_stable_iterators">has_stable_iterators</a><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.split_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/split.hpp" target="_top">boost/algorithm/string/split.hpp</a>&gt;</h3></div></div></div>
<p>Defines basic split algorithms. Split algorithms can be used to divide a string into several parts according to given criteria.</p>
<p>Each part is copied and added as a new element to the output container. Thus the result container must be able to hold copies of the matches (in a compatible structure like std::string) or a reference to it (e.g. using the iterator range class). Examples of such a container are <code class="computeroutput">std::vector&lt;std::string&gt;</code> or <code class="computeroutput">std::list&lt;boost::iterator_range&lt;std::string::iterator&gt;&gt;</code> </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceSequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span>
<a class="link" href="../boost/algorithm/find_all.html" title="Function template find_all"><span class="identifier">find_all</span></a><span class="special">(</span><span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">Range1T</span> <span class="special">&amp;&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceSequenceT<span class="special">,</span> <span class="keyword">typename</span> Range1T<span class="special">,</span> <span class="keyword">typename</span> Range2T<span class="special">&gt;</span>
<span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span>
<a class="link" href="../boost/algorithm/ifind_all.html" title="Function template ifind_all"><span class="identifier">ifind_all</span></a><span class="special">(</span><span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">Range1T</span> <span class="special">&amp;&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Range2T</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceSequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span>
<a class="link" href="../boost/algorithm/split.html" title="Function template split"><span class="identifier">split</span></a><span class="special">(</span><span class="identifier">SequenceSequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">RangeT</span> <span class="special">&amp;&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">,</span>
<span class="identifier">token_compress_mode_type</span> <span class="special">=</span> <span class="identifier">token_compress_off</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.std_containers_traits_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/std_containers_traits.hpp" target="_top">boost/algorithm/string/std_containers_traits.hpp</a>&gt;</h3></div></div></div>
<p>This file includes sequence traits for stl containers. </p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.trim_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/trim.hpp" target="_top">boost/algorithm/string/trim.hpp</a>&gt;</h3></div></div></div>
<p>Defines trim algorithms. Trim algorithms are used to remove trailing and leading spaces from a sequence (string). Space is recognized using given locales.</p>
<p>Parametric (<code class="computeroutput">_if</code>) variants use a predicate (functor) to select which characters are to be trimmed.. Functions take a selection predicate as a parameter, which is used to determine whether a character is a space. Common predicates are provided in classification.hpp header. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/trim_left_copy_if.html" title="Function trim_left_copy_if"><span class="identifier">trim_left_copy_if</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/trim_left_copy_if.html" title="Function trim_left_copy_if"><span class="identifier">trim_left_copy_if</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/trim_left_copy.html" title="Function template trim_left_copy"><span class="identifier">trim_left_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/trim_left_if.html" title="Function template trim_left_if"><span class="identifier">trim_left_if</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/trim_left.html" title="Function template trim_left"><span class="identifier">trim_left</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/trim_right_copy_if.html" title="Function trim_right_copy_if"><span class="identifier">trim_right_copy_if</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/trim_right_copy_if.html" title="Function trim_right_copy_if"><span class="identifier">trim_right_copy_if</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/trim_right_copy.html" title="Function template trim_right_copy"><span class="identifier">trim_right_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/trim_right_if.html" title="Function template trim_right_if"><span class="identifier">trim_right_if</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/trim_right.html" title="Function template trim_right"><span class="identifier">trim_right</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> OutputIteratorT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="identifier">OutputIteratorT</span>
<a class="link" href="../boost/algorithm/trim_copy_if.html" title="Function trim_copy_if"><span class="identifier">trim_copy_if</span></a><span class="special">(</span><span class="identifier">OutputIteratorT</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/trim_copy_if.html" title="Function trim_copy_if"><span class="identifier">trim_copy_if</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/trim_copy.html" title="Function template trim_copy"><span class="identifier">trim_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/trim_if.html" title="Function template trim_if"><span class="identifier">trim_if</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/trim.html" title="Function template trim"><span class="identifier">trim</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string.trim_all_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string/trim_all.hpp" target="_top">boost/algorithm/string/trim_all.hpp</a>&gt;</h3></div></div></div>
<p>Defines trim_all algorithms.</p>
<p>Just like <code class="computeroutput">trim</code>, <code class="computeroutput">trim_all</code> removes all trailing and leading spaces from a sequence (string). In addition, spaces in the middle of the sequence are truncated to just one character. Space is recognized using given locales.</p>
<p><code class="computeroutput">trim_fill</code> acts as trim_all, but the spaces in the middle are replaces with a user-define sequence of character.</p>
<p>Parametric (<code class="computeroutput">_if</code>) variants use a predicate (functor) to select which characters are to be trimmed.. Functions take a selection predicate as a parameter, which is used to determine whether a character is a space. Common predicates are provided in classification.hpp header. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">algorithm</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/trim_all_copy_if.html" title="Function template trim_all_copy_if"><span class="identifier">trim_all_copy_if</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/trim_all_if.html" title="Function template trim_all_if"><span class="identifier">trim_all_if</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/trim_all_copy.html" title="Function template trim_all_copy"><span class="identifier">trim_all_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/trim_all.html" title="Function template trim_all"><span class="identifier">trim_all</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/trim_fill_copy_if.html" title="Function template trim_fill_copy_if"><span class="identifier">trim_fill_copy_if</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">,</span> <span class="keyword">typename</span> PredicateT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/trim_fill_if.html" title="Function template trim_fill_if"><span class="identifier">trim_fill_if</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">PredicateT</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="identifier">SequenceT</span> <a class="link" href="../boost/algorithm/trim_fill_copy.html" title="Function template trim_fill_copy"><span class="identifier">trim_fill_copy</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SequenceT<span class="special">,</span> <span class="keyword">typename</span> RangeT<span class="special">&gt;</span>
<span class="keyword">void</span> <a class="link" href="../boost/algorithm/trim_fill.html" title="Function template trim_fill"><span class="identifier">trim_fill</span></a><span class="special">(</span><span class="identifier">SequenceT</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RangeT</span> <span class="special">&amp;</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span> <span class="special">&amp;</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="header.boost.algorithm.string_regex_hpp"></a>Header &lt;<a href="../../../boost/algorithm/string_regex.hpp" target="_top">boost/algorithm/string_regex.hpp</a>&gt;</h3></div></div></div>
<p>Cumulative include for string_algo library. In addition to string.hpp contains also regex-related stuff. </p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2002-2004 Pavol Droba<p>Use, modification and distribution is subject to the Boost
Software License, Version 1.0. (See accompanying file
<code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="concept.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="../boost/algorithm/to_lower_copy.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,69 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Release Notes</title>
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../string_algo.html" title="Chapter 2. Boost String Algorithms Library">
<link rel="prev" href="../string_algo.html" title="Chapter 2. Boost String Algorithms Library">
<link rel="next" href="usage.html" title="Usage">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
<td align="center"><a href="../../../index.html">Home</a></td>
<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../string_algo.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="usage.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="string_algo.release_notes"></a>Release Notes</h2></div></div></div>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p><span class="bold"><strong>1.32</strong></span></p>
<p>Initial release in Boost</p>
</li>
<li class="listitem">
<p><span class="bold"><strong>1.33</strong></span></p>
<p>Internal version of collection traits removed, library adapted to Boost.Range</p>
</li>
<li class="listitem">
<p><span class="bold"><strong>1.34</strong></span></p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem"><code class="computeroutput"><a class="link" href="../boost/algorithm/lexicographical_compare.html" title="Function lexicographical_compare">lexicographical_compare()</a></code></li>
<li class="listitem">
<code class="computeroutput"><a class="link" href="../boost/algorithm/join.html" title="Function template join">join()</a></code> and <code class="computeroutput"><a class="link" href="../boost/algorithm/join_if_1_3_3_9_14_3_1_2.html" title="Function template join_if">join_if()</a></code>
</li>
<li class="listitem">
New comparison predicates <code class="computeroutput">is_less</code>, <code class="computeroutput">is_not_greater</code>
</li>
<li class="listitem">
Negative indexes support (like Perl) in various algorithms
(<code class="computeroutput">*_head/tail</code>, <code class="computeroutput">*_nth</code>).
</li>
</ul></div>
</li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2002-2004 Pavol Droba<p>Use, modification and distribution is subject to the Boost
Software License, Version 1.0. (See accompanying file
<code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../string_algo.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="usage.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -0,0 +1,395 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Usage</title>
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../string_algo.html" title="Chapter 2. Boost String Algorithms Library">
<link rel="prev" href="release_notes.html" title="Release Notes">
<link rel="next" href="quickref.html" title="Quick Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
<td align="center"><a href="../../../index.html">Home</a></td>
<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="release_notes.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="quickref.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="string_algo.usage"></a>Usage</h2></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="usage.html#id-1.3.3.5.2">First Example</a></span></dt>
<dt><span class="section"><a href="usage.html#id-1.3.3.5.3">Case conversion</a></span></dt>
<dt><span class="section"><a href="usage.html#id-1.3.3.5.4">Predicates and Classification</a></span></dt>
<dt><span class="section"><a href="usage.html#id-1.3.3.5.5">Trimming</a></span></dt>
<dt><span class="section"><a href="usage.html#id-1.3.3.5.6">Find algorithms</a></span></dt>
<dt><span class="section"><a href="usage.html#id-1.3.3.5.7">Replace Algorithms</a></span></dt>
<dt><span class="section"><a href="usage.html#id-1.3.3.5.8">Find Iterator</a></span></dt>
<dt><span class="section"><a href="usage.html#id-1.3.3.5.9">Split</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.5.2"></a>First Example</h3></div></div></div>
<p>
Using the algorithms is straightforward. Let us have a look at the first example:
</p>
<pre class="programlisting">
#include &lt;boost/algorithm/string.hpp&gt;
using namespace std;
using namespace boost;
// ...
string str1(" hello world! ");
to_upper(str1); // str1 == " HELLO WORLD! "
trim(str1); // str1 == "HELLO WORLD!"
string str2=
to_lower_copy(
ireplace_first_copy(
str1,"hello","goodbye")); // str2 == "goodbye world!"
</pre>
<p>
This example converts str1 to upper case and trims spaces from the start and the end
of the string. str2 is then created as a copy of str1 with "hello" replaced with "goodbye".
This example demonstrates several important concepts used in the library:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
<p><span class="bold"><strong>Container parameters:</strong></span>
Unlike in the STL algorithms, parameters are not specified only in the form
of iterators. The STL convention allows for great flexibility,
but it has several limitations. It is not possible to <span class="emphasis"><em>stack</em></span> algorithms together,
because a container is passed in two parameters. Therefore it is not possible to use
a return value from another algorithm. It is considerably easier to write
<code class="computeroutput">to_lower(str1)</code>, than <code class="computeroutput">to_lower(str1.begin(), str1.end())</code>.
</p>
<p>
The magic of <a href="../../../libs/range/index.html" target="_top">Boost.Range</a>
provides a uniform way of handling different string types.
If there is a need to pass a pair of iterators,
<a href="../../../libs/range/doc/html/range/reference/utilities/iterator_range.html" target="_top"><code class="computeroutput">boost::iterator_range</code></a>
can be used to package iterators into a structure with a compatible interface.
</p>
</li>
<li class="listitem"><p><span class="bold"><strong>Copy vs. Mutable:</strong></span>
Many algorithms in the library are performing a transformation of the input.
The transformation can be done in-place, mutating the input sequence, or a copy
of the transformed input can be created, leaving the input intact. None of
these possibilities is superior to the other one and both have different
advantages and disadvantages. For this reason, both are provided with the library.
</p></li>
<li class="listitem"><p><span class="bold"><strong>Algorithm stacking:</strong></span>
Copy versions return a transformed input as a result, thus allow a simple chaining of
transformations within one expression (i.e. one can write <code class="computeroutput">trim_copy(to_upper_copy(s))</code>).
Mutable versions have <code class="computeroutput">void</code> return, to avoid misuse.
</p></li>
<li class="listitem"><p><span class="bold"><strong>Naming:</strong></span>
Naming follows the conventions from the Standard C++ Library. If there is a
copy and a mutable version of the same algorithm, the mutable version has no suffix
and the copy version has the suffix <span class="emphasis"><em>_copy</em></span>.
Some algorithms have the prefix <span class="emphasis"><em>i</em></span>
(e.g. <code class="computeroutput"><a class="link" href="../boost/algorithm/ifind_first.html" title="Function template ifind_first">ifind_first()</a></code>).
This prefix identifies that the algorithm works in a case-insensitive manner.
</p></li>
</ul></div>
<p>
To use the library, include the <code class="computeroutput"><a class="link" href="reference.html#header.boost.algorithm.string_hpp" title="Header &lt;boost/algorithm/string.hpp&gt;">boost/algorithm/string.hpp</a></code> header.
If the regex related functions are needed, include the
<code class="computeroutput"><a class="link" href="reference.html#header.boost.algorithm.string_regex_hpp" title="Header &lt;boost/algorithm/string_regex.hpp&gt;">boost/algorithm/string_regex.hpp</a></code> header.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.5.3"></a>Case conversion</h3></div></div></div>
<p>
STL has a nice way of converting character case. Unfortunately, it works only
for a single character and we want to convert a string,
</p>
<pre class="programlisting">
string str1("HeLlO WoRld!");
to_upper(str1); // str1=="HELLO WORLD!"
</pre>
<p>
<code class="computeroutput"><a class="link" href="../boost/algorithm/to_upper.html" title="Function template to_upper">to_upper()</a></code> and <code class="computeroutput"><a class="link" href="../boost/algorithm/to_lower.html" title="Function template to_lower">to_lower()</a></code> convert the case of
characters in a string using a specified locale.
</p>
<p>
For more information see the reference for <code class="computeroutput"><a class="link" href="reference.html#header.boost.algorithm.string.case_conv_hpp" title="Header &lt;boost/algorithm/string/case_conv.hpp&gt;">boost/algorithm/string/case_conv.hpp</a></code>.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.5.4"></a>Predicates and Classification</h3></div></div></div>
<p>
A part of the library deals with string related predicates. Consider this example:
</p>
<pre class="programlisting">
bool is_executable( string&amp; filename )
{
return
iends_with(filename, ".exe") ||
iends_with(filename, ".com");
}
// ...
string str1("command.com");
cout
&lt;&lt; str1
&lt;&lt; (is_executable(str1)? "is": "is not")
&lt;&lt; "an executable"
&lt;&lt; endl; // prints "command.com is an executable"
//..
char text1[]="hello";
cout
&lt;&lt; text1
&lt;&lt; (all( text1, is_lower() )? " is": " is not")
&lt;&lt; " written in the lower case"
&lt;&lt; endl; // prints "hello is written in the lower case"
</pre>
<p>
The predicates determine whether if a substring is contained in the input string
under various conditions. The conditions are: a string starts with the substring,
ends with the substring,
simply contains the substring or if both strings are equal. See the reference for
<code class="computeroutput"><a class="link" href="reference.html#header.boost.algorithm.string.predicate_hpp" title="Header &lt;boost/algorithm/string/predicate.hpp&gt;">boost/algorithm/string/predicate.hpp</a></code> for more details.
</p>
<p>
Note that if we had used "hello world" as the input to the test, it would have
output "hello world is not written in the lower case" because the space in the
input string is not a lower case letter.
</p>
<p>
In addition the algorithm <code class="computeroutput"><a class="link" href="../boost/algorithm/all.html" title="Function template all">all()</a></code> checks
all elements of a container to satisfy a condition specified by a predicate.
This predicate can be any unary predicate, but the library provides a bunch of
useful string-related predicates and combinators ready for use.
These are located in the <code class="computeroutput"><a class="link" href="reference.html#header.boost.algorithm.string.classification_hpp" title="Header &lt;boost/algorithm/string/classification.hpp&gt;">boost/algorithm/string/classification.hpp</a></code> header.
Classification predicates can be combined using logical combinators to form
a more complex expressions. For example: <code class="computeroutput">is_from_range('a','z') || is_digit()</code>
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.5.5"></a>Trimming</h3></div></div></div>
<p>
When parsing the input from a user, strings often have unwanted leading or trailing
characters. To get rid of them, we need trim functions:
</p>
<pre class="programlisting">
string str1=" hello world! ";
string str2=trim_left_copy(str1); // str2 == "hello world! "
string str3=trim_right_copy(str1); // str3 == " hello world!"
trim(str1); // str1 == "hello world!"
string phone="00423333444";
// remove leading 0 from the phone number
trim_left_if(phone,is_any_of("0")); // phone == "423333444"
</pre>
<p>
It is possible to trim the spaces on the right, on the left or on both sides of a string.
And for those cases when there is a need to remove something else than blank space, there
are <span class="emphasis"><em>_if</em></span> variants. Using these, a user can specify a functor which will
select the <span class="emphasis"><em>space</em></span> to be removed. It is possible to use classification
predicates like <code class="computeroutput"><a class="link" href="../boost/algorithm/is_digit.html" title="Function is_digit">is_digit()</a></code> mentioned in the previous paragraph.
See the reference for the <code class="computeroutput"><a class="link" href="reference.html#header.boost.algorithm.string.trim_hpp" title="Header &lt;boost/algorithm/string/trim.hpp&gt;">boost/algorithm/string/trim.hpp</a></code>.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.5.6"></a>Find algorithms</h3></div></div></div>
<p>
The library contains a set of find algorithms. Here is an example:
</p>
<pre class="programlisting">
char text[]="hello dolly!";
iterator_range&lt;char*&gt; result=find_last(text,"ll");
transform( result.begin(), result.end(), result.begin(), bind2nd(plus&lt;char&gt;(), 1) );
// text = "hello dommy!"
to_upper(result); // text == "hello doMMy!"
// iterator_range is convertible to bool
if(find_first(text, "dolly"))
{
cout &lt;&lt; "Dolly is there" &lt;&lt; endl;
}
</pre>
<p>
We have used <code class="computeroutput"><a class="link" href="../boost/algorithm/find_last.html" title="Function template find_last">find_last()</a></code> to search the <code class="computeroutput">text</code> for "ll".
The result is given in the <a href="../../../libs/range/doc/html/range/reference/utilities/iterator_range.html" target="_top"><code class="computeroutput">boost::iterator_range</code></a>.
This range delimits the
part of the input which satisfies the find criteria. In our example it is the last occurrence of "ll".
As we can see, input of the <code class="computeroutput"><a class="link" href="../boost/algorithm/find_last.html" title="Function template find_last">find_last()</a></code> algorithm can be also
char[] because this type is supported by
<a href="../../../libs/range/index.html" target="_top">Boost.Range</a>.
The following lines transform the result. Notice that
<a href="../../../libs/range/doc/html/range/reference/utilities/iterator_range.html" target="_top"><code class="computeroutput">boost::iterator_range</code></a> has familiar
<code class="computeroutput">begin()</code> and <code class="computeroutput">end()</code> methods, so it can be used like any other STL container.
Also it is convertible to bool therefore it is easy to use find algorithms for a simple containment checking.
</p>
<p>
Find algorithms are located in <code class="computeroutput"><a class="link" href="reference.html#header.boost.algorithm.string.find_hpp" title="Header &lt;boost/algorithm/string/find.hpp&gt;">boost/algorithm/string/find.hpp</a></code>.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.5.7"></a>Replace Algorithms</h3></div></div></div>
<p>
Find algorithms can be used for searching for a specific part of string. Replace goes one step
further. After a matching part is found, it is substituted with something else. The substitution is computed
from the original, using some transformation.
</p>
<pre class="programlisting">
string str1="Hello Dolly, Hello World!"
replace_first(str1, "Dolly", "Jane"); // str1 == "Hello Jane, Hello World!"
replace_last(str1, "Hello", "Goodbye"); // str1 == "Hello Jane, Goodbye World!"
erase_all(str1, " "); // str1 == "HelloJane,GoodbyeWorld!"
erase_head(str1, 6); // str1 == "Jane,GoodbyeWorld!"
</pre>
<p>
For the complete list of replace and erase functions see the
<a class="link" href="reference.html" title="Reference">reference</a>.
There is a lot of predefined function for common usage, however, the library allows you to
define a custom <code class="computeroutput">replace()</code> that suits a specific need. There is a generic <code class="computeroutput"><a class="link" href="../boost/algorithm/find_format.html" title="Function template find_format">find_format()</a></code>
function which takes two parameters.
The first one is a <a class="link" href="concept.html#string_algo.finder_concept" title="Finder Concept">Finder</a> object, the second one is
a <a class="link" href="concept.html#string_algo.formatter_concept" title="Formatter concept">Formatter</a> object.
The Finder object is a functor which performs the searching for the replacement part. The Formatter object
takes the result of the Finder (usually a reference to the found substring) and creates a
substitute for it. Replace algorithm puts these two together and makes the desired substitution.
</p>
<p>
Check <code class="computeroutput"><a class="link" href="reference.html#header.boost.algorithm.string.replace_hpp" title="Header &lt;boost/algorithm/string/replace.hpp&gt;">boost/algorithm/string/replace.hpp</a></code>, <code class="computeroutput"><a class="link" href="reference.html#header.boost.algorithm.string.erase_hpp" title="Header &lt;boost/algorithm/string/erase.hpp&gt;">boost/algorithm/string/erase.hpp</a></code> and
<code class="computeroutput"><a class="link" href="reference.html#header.boost.algorithm.string.find_format_hpp" title="Header &lt;boost/algorithm/string/find_format.hpp&gt;">boost/algorithm/string/find_format.hpp</a></code> for reference.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.5.8"></a>Find Iterator</h3></div></div></div>
<p>
An extension to find algorithms is the Find Iterator. Instead of searching for just a one part of a string,
the find iterator allows us to iterate over the substrings matching the specified criteria.
This facility is using the <a class="link" href="concept.html#string_algo.finder_concept" title="Finder Concept">Finder</a> to incrementally
search the string.
Dereferencing a find iterator yields an <a href="../../../libs/range/doc/html/range/reference/utilities/iterator_range.html" target="_top"><code class="computeroutput">boost::iterator_range</code></a>
object, that delimits the current match.
</p>
<p>
There are two iterators provided <code class="computeroutput"><a class="link" href="../boost/algorithm/find_iterator.html" title="Class template find_iterator">find_iterator</a></code> and
<code class="computeroutput"><a class="link" href="../boost/algorithm/split_iterator.html" title="Class template split_iterator">split_iterator</a></code>. The former iterates over substrings that are found using the specified
Finder. The latter iterates over the gaps between these substrings.
</p>
<pre class="programlisting">
string str1("abc-*-ABC-*-aBc");
// Find all 'abc' substrings (ignoring the case)
// Create a find_iterator
typedef find_iterator&lt;string::iterator&gt; string_find_iterator;
for(string_find_iterator It=
make_find_iterator(str1, first_finder("abc", is_iequal()));
It!=string_find_iterator();
++It)
{
cout &lt;&lt; copy_range&lt;std::string&gt;(*It) &lt;&lt; endl;
}
// Output will be:
// abc
// ABC
// aBC
typedef split_iterator&lt;string::iterator&gt; string_split_iterator;
for(string_split_iterator It=
make_split_iterator(str1, first_finder("-*-", is_iequal()));
It!=string_split_iterator();
++It)
{
cout &lt;&lt; copy_range&lt;std::string&gt;(*It) &lt;&lt; endl;
}
// Output will be:
// abc
// ABC
// aBC
</pre>
<p>
Note that the find iterators have only one template parameter. It is the base iterator type.
The Finder is specified at runtime. This allows us to typedef a find iterator for
common string types and reuse it. Additionally make_*_iterator functions help
to construct a find iterator for a particular range.
</p>
<p>
See the reference in <code class="computeroutput"><a class="link" href="reference.html#header.boost.algorithm.string.find_iterator_hpp" title="Header &lt;boost/algorithm/string/find_iterator.hpp&gt;">boost/algorithm/string/find_iterator.hpp</a></code>.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="id-1.3.3.5.9"></a>Split</h3></div></div></div>
<p>
Split algorithms are an extension to the find iterator for one common usage scenario.
These algorithms use a find iterator and store all matches into the provided
container. This container must be able to hold copies (e.g. <code class="computeroutput">std::string</code>) or
references (e.g. <code class="computeroutput">iterator_range</code>) of the extracted substrings.
</p>
<p>
Two algorithms are provided. <code class="computeroutput"><a class="link" href="../boost/algorithm/find_all.html" title="Function template find_all">find_all()</a></code> finds all copies
of a string in the input. <code class="computeroutput"><a class="link" href="../boost/algorithm/split.html" title="Function template split">split()</a></code> splits the input into parts.
</p>
<pre class="programlisting">
string str1("hello abc-*-ABC-*-aBc goodbye");
typedef vector&lt; iterator_range&lt;string::iterator&gt; &gt; find_vector_type;
find_vector_type FindVec; // #1: Search for separators
ifind_all( FindVec, str1, "abc" ); // FindVec == { [abc],[ABC],[aBc] }
typedef vector&lt; string &gt; split_vector_type;
split_vector_type SplitVec; // #2: Search for tokens
split( SplitVec, str1, is_any_of("-*"), token_compress_on ); // SplitVec == { "hello abc","ABC","aBc goodbye" }
</pre>
<p>
<code class="computeroutput">[hello]</code> designates an <code class="computeroutput">iterator_range</code> delimiting this substring.
</p>
<p>
First example show how to construct a container to hold references to all extracted
substrings. Algorithm <code class="computeroutput"><a class="link" href="../boost/algorithm/ifind_all.html" title="Function template ifind_all">ifind_all()</a></code> puts into FindVec references
to all substrings that are in case-insensitive manner equal to "abc".
</p>
<p>
Second example uses <code class="computeroutput"><a class="link" href="../boost/algorithm/split.html" title="Function template split">split()</a></code> to split string str1 into parts
separated by characters '-' or '*'. These parts are then put into the SplitVec.
It is possible to specify if adjacent separators are concatenated or not.
</p>
<p>
More information can be found in the reference: <code class="computeroutput"><a class="link" href="reference.html#header.boost.algorithm.string.split_hpp" title="Header &lt;boost/algorithm/string/split.hpp&gt;">boost/algorithm/string/split.hpp</a></code>.
</p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2002-2004 Pavol Droba<p>Use, modification and distribution is subject to the Boost
Software License, Version 1.0. (See accompanying file
<code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="release_notes.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string_algo.html"><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="quickref.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>