]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/mpl/doc/refmanual/string.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / mpl / doc / refmanual / string.html
CommitLineData
7c673cae
FG
1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
7<title>The MPL Reference Manual: string</title>
8<link rel="stylesheet" href="../style.css" type="text/css" />
9</head>
10<body class="docframe refmanual">
11<table class="header"><tr class="header"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./set-c.html" class="navigation-link">Prev</a>&nbsp;<a href="./views.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./set-c.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./classes.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
12<td class="header-group page-location"><a href="../refmanual.html" class="navigation-link">Front Page</a> / <a href="./sequences.html" class="navigation-link">Sequences</a> / <a href="./classes.html" class="navigation-link">Classes</a> / <a href="./string.html" class="navigation-link">string</a></td>
13</tr></table><div class="header-separator"></div>
14<div class="section" id="string">
15<h1><a class="toc-backref" href="./classes.html#id1415">string</a></h1>
16<div class="section" id="id112">
17<h3><a class="subsection-title" href="#description" name="description">Description</a></h3>
18<p><tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a></span></tt> is a <a class="reference internal" href="./variadic-sequence.html">variadic</a>, <a class="reference internal" href="./bidirectional-sequence.html">bidirectional</a>, <a class="reference internal" href="./extensible-sequence.html">extensible</a> <a class="reference internal" href="./integral-sequence-wrapper.html">Integral Sequence Wrapper</a> of
19characters that supports amortized constant-time insertion and removal of elements at both ends,
20and linear-time insertion and removal of elements in the middle. The parameters to <tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a></span></tt>
21are multi-character literals, giving a somewhat readable syntax for compile-time strings.
22<tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a></span></tt> can also be an argument to the <tt class="literal"><span class="pre"><a href="./c-str.html" class="identifier">c_str</a></span></tt> metafunction, which generates a
23null-terminated character array that facilitates interoperability with runtime string
24processing routines.</p>
25</div>
26<div class="section" id="id115">
27<h3><a class="subsection-title" href="#header" name="header">Header</a></h3>
28<table border="1" class="docutils table">
29<colgroup>
30<col width="26%" />
31<col width="74%" />
32</colgroup>
33<thead valign="bottom">
34<tr><th class="head">Sequence form</th>
35<th class="head">Header</th>
36</tr>
37</thead>
38<tbody valign="top">
39<tr><td>Variadic</td>
40<td><tt class="literal"><span class="pre">#include &lt;<a href="../../../../boost/mpl/string.hpp" class="header">boost/mpl/string.hpp</a>&gt;</span></tt></td>
41</tr>
42</tbody>
43</table>
44</div>
45<div class="section" id="id116">
46<h3><a class="subsection-title" href="#model-of" name="model-of">Model of</a></h3>
47<ul class="simple">
48<li><a class="reference internal" href="./integral-sequence-wrapper.html">Integral Sequence Wrapper</a></li>
49<li><a class="reference internal" href="./variadic-sequence.html">Variadic Sequence</a></li>
50<li><a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a></li>
51<li><a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a></li>
52<li><a class="reference internal" href="./back-extensible-sequence.html">Back Extensible Sequence</a></li>
53<li><a class="reference internal" href="./front-extensible-sequence.html">Front Extensible Sequence</a></li>
54</ul>
55</div>
56<div class="section" id="id117">
57<h3><a class="subsection-title" href="#expression-semantics" name="expression-semantics">Expression semantics</a></h3>
58<p>In the following table, <tt class="literal"><span class="pre">s</span></tt> is an instance of <tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a></span></tt>, <tt class="literal"><span class="pre">pos</span></tt> and <tt class="literal"><span class="pre">last</span></tt> are iterators
59into <tt class="literal"><span class="pre">s</span></tt>, <tt class="literal"><span class="pre">r</span></tt> is a <a class="reference internal" href="./forward-sequence.html">Forward Sequence</a> of characters, <tt class="literal"><span class="pre">n</span></tt> and <tt class="literal"><span class="pre">x</span></tt> are <a class="reference internal" href="./integral-constant.html">Integral Constant</a>s,
60and <em>c</em><sub>1</sub>,<em>c</em><sub>2</sub>,... <em>c</em><sub>n</sub> are arbitrary (multi-)characters.</p>
61<table border="1" class="docutils table">
62<colgroup>
63<col width="40%" />
64<col width="60%" />
65</colgroup>
66<thead valign="bottom">
67<tr><th class="head">Expression</th>
68<th class="head">Semantics</th>
69</tr>
70</thead>
71<tbody valign="top">
72<tr><td><pre class="first last literal-block">
73<a href="./string.html" class="identifier">string</a>&lt;<em>c</em><sub>1</sub>,<em>c</em><sub>2</sub>,... <em>c</em><sub>n</sub>&gt;
74</pre>
75</td>
76<td><tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a></span></tt> of characters <em>c</em><sub>1</sub>,<em>c</em><sub>2</sub>,... <em>c</em><sub>n</sub>; see
77<a class="reference internal" href="./variadic-sequence.html">Variadic Sequence</a>.</td>
78</tr>
79<tr><td><pre class="first last literal-block">
80<a href="./string.html" class="identifier">string</a>&lt;<em>c</em><sub>1</sub>,<em>c</em><sub>2</sub>,... <em>c</em><sub>n</sub>&gt;::type
81</pre>
82</td>
83<td>Identical to <tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a>&lt;</span></tt><em>c</em><sub>1</sub>,<em>c</em><sub>2</sub>,... <em>c</em><sub>n</sub><tt class="literal"><span class="pre">&gt;</span></tt>;
84see <a class="reference internal" href="./variadic-sequence.html">Variadic Sequence</a>.</td>
85</tr>
86<tr><td><tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt></td>
87<td>An iterator pointing to the beginning of <tt class="literal"><span class="pre">s</span></tt>;
88see <a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a>.</td>
89</tr>
90<tr><td><tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt></td>
91<td>An iterator pointing to the end of <tt class="literal"><span class="pre">s</span></tt>;
92see <a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a>.</td>
93</tr>
94<tr><td><tt class="literal"><span class="pre"><a href="./size.html" class="identifier">size</a>&lt;s&gt;::type</span></tt></td>
95<td>The size of <tt class="literal"><span class="pre">s</span></tt>; see <a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a>.</td>
96</tr>
97<tr><td><tt class="literal"><span class="pre"><a href="./empty.html" class="identifier">empty</a>&lt;s&gt;::type</span></tt></td>
98<td>A boolean <a class="reference internal" href="./integral-constant.html">Integral Constant</a> <tt class="literal"><span class="pre">c</span></tt> such that
99<tt class="literal"><span class="pre">c::value</span> <span class="pre">==</span> <span class="pre">true</span></tt> if and only if the sequence is empty;
100see <a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a>.</td>
101</tr>
102<tr><td><tt class="literal"><span class="pre"><a href="./front.html" class="identifier">front</a>&lt;s&gt;::type</span></tt></td>
103<td>The first element in <tt class="literal"><span class="pre">s</span></tt>; see
104<a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a>.</td>
105</tr>
106<tr><td><tt class="literal"><span class="pre"><a href="./back.html" class="identifier">back</a>&lt;s&gt;::type</span></tt></td>
107<td>The last element in <tt class="literal"><span class="pre">s</span></tt>; see
108<a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a>.</td>
109</tr>
110<tr><td><tt class="literal"><span class="pre"><a href="./insert.html" class="identifier">insert</a>&lt;s,pos,x&gt;::type</span></tt></td>
111<td>A new <tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a></span></tt> of following elements:
112[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>), <tt class="literal"><span class="pre">x</span></tt>,
113[<tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>); see <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</td>
114</tr>
115<tr><td><tt class="literal"><span class="pre"><a href="./insert-range.html" class="identifier">insert_range</a>&lt;s,pos,r&gt;::type</span></tt></td>
116<td>A new <tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a></span></tt> of following elements:
117[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>),
118[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;r&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;r&gt;::type</span></tt>)
119[<tt class="literal"><span class="pre">pos</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>); see <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</td>
120</tr>
121<tr><td><tt class="literal"><span class="pre"><a href="./erase.html" class="identifier">erase</a>&lt;s,pos&gt;::type</span></tt></td>
122<td>A new <tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a></span></tt> of following elements:
123[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>),
124[<tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a>&lt;pos&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>); see
125<a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</td>
126</tr>
127<tr><td><tt class="literal"><span class="pre"><a href="./erase.html" class="identifier">erase</a>&lt;s,pos,last&gt;::type</span></tt></td>
128<td>A new <tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a></span></tt> of following elements:
129[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre">pos</span></tt>),
130[<tt class="literal"><span class="pre">last</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>); see <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</td>
131</tr>
132<tr><td><tt class="literal"><span class="pre"><a href="./clear.html" class="identifier">clear</a>&lt;s&gt;::type</span></tt></td>
133<td>An empty <tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a></span></tt>; see <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>.</td>
134</tr>
135<tr><td><tt class="literal"><span class="pre"><a href="./push-back.html" class="identifier">push_back</a>&lt;s,x&gt;::type</span></tt></td>
136<td>A new <tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a></span></tt> of following elements:
137[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>), <tt class="literal"><span class="pre">x</span></tt>;
138see <a class="reference internal" href="./back-extensible-sequence.html">Back Extensible Sequence</a>.</td>
139</tr>
140<tr><td><tt class="literal"><span class="pre"><a href="./pop-back.html" class="identifier">pop_back</a>&lt;s&gt;::type</span></tt></td>
141<td>A new <tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a></span></tt> of following elements:
142[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./prior.html" class="identifier">prior</a>&lt;</span> <span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span> <span class="pre">&gt;::type</span></tt>);
143see <a class="reference internal" href="./back-extensible-sequence.html">Back Extensible Sequence</a>.</td>
144</tr>
145<tr><td><tt class="literal"><span class="pre"><a href="./push-front.html" class="identifier">push_front</a>&lt;s,x&gt;::type</span></tt></td>
146<td>A new <tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a></span></tt> of following elements:
147[<tt class="literal"><span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>), <tt class="literal"><span class="pre">x</span></tt>; see <a class="reference internal" href="./front-extensible-sequence.html">Front Extensible Sequence</a>.</td>
148</tr>
149<tr><td><tt class="literal"><span class="pre"><a href="./pop-front.html" class="identifier">pop_front</a>&lt;s&gt;::type</span></tt></td>
150<td>A new <tt class="literal"><span class="pre"><a href="./string.html" class="identifier">string</a></span></tt> of following elements:
151[<tt class="literal"><span class="pre"><a href="./next.html" class="identifier">next</a>&lt;</span> <span class="pre"><a href="./begin.html" class="identifier">begin</a>&lt;s&gt;::type</span> <span class="pre">&gt;::type</span></tt>, <tt class="literal"><span class="pre"><a href="./end.html" class="identifier">end</a>&lt;s&gt;::type</span></tt>);
152see <a class="reference internal" href="./front-extensible-sequence.html">Front Extensible Sequence</a>.</td>
153</tr>
154<tr><td><tt class="literal"><span class="pre"><a href="./c-str.html" class="identifier">c_str</a>&lt;s&gt;::value</span></tt></td>
155<td>A null-terminated byte string such that
156<tt class="literal"><span class="pre"><a href="./c-str.html" class="identifier">c_str</a>&lt;s&gt;::value[</span></tt><em>n</em><tt class="literal"><span class="pre">]</span></tt> is equal to the <em>n</em>-th
157character in <tt class="literal"><span class="pre">s</span></tt>, and
158<tt class="literal"><span class="pre"><a href="./c-str.html" class="identifier">c_str</a>&lt;s&gt;::value[<a href="./size.html" class="identifier">size</a>&lt;s&gt;::type::value]</span></tt> is <tt class="literal"><span class="pre">'\0'</span></tt>.</td>
159</tr>
160</tbody>
161</table>
162</div>
163<div class="section" id="id118">
164<h3><a class="subsection-title" href="#example" name="example">Example</a></h3>
165<pre class="literal-block">
166typedef mpl::<a href="./string.html" class="identifier">string</a>&lt;'hell','o wo','rld'&gt; hello;
167typedef mpl::<a href="./push-back.html" class="identifier">push_back</a>&lt;hello, mpl::<a href="./char.html" class="identifier">char_</a>&lt;'!'&gt; &gt;::type hello2;
168
169BOOST_ASSERT(0 == std::strcmp(mpl::<a href="./c-str.html" class="identifier">c_str</a>&lt;hello2&gt;::value, &quot;hello world!"));
170</pre>
171</div>
172<div class="section" id="id119">
173<h3><a class="subsection-title" href="#see-also" name="see-also">See also</a></h3>
174<p><a class="reference internal" href="./sequences.html">Sequences</a>, <a class="reference internal" href="./variadic-sequence.html">Variadic Sequence</a>, <a class="reference internal" href="./bidirectional-sequence.html">Bidirectional Sequence</a>, <a class="reference internal" href="./extensible-sequence.html">Extensible Sequence</a>, <a class="reference internal" href="./integral-sequence-wrapper.html">Integral Sequence Wrapper</a>, <a class="reference internal" href="./char.html">char_</a>, <a class="reference internal" href="./c-str.html">c_str</a></p>
175</div>
176</div>
177
178<div class="footer-separator"></div>
179<table class="footer"><tr class="footer"><td class="header-group navigation-bar"><span class="navigation-group"><a href="./set-c.html" class="navigation-link">Prev</a>&nbsp;<a href="./views.html" class="navigation-link">Next</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./set-c.html" class="navigation-link">Back</a>&nbsp;Along</span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./classes.html" class="navigation-link">Up</a>&nbsp;<a href="../refmanual.html" class="navigation-link">Home</a></span><span class="navigation-group-separator">&nbsp;|&nbsp;</span><span class="navigation-group"><a href="./refmanual_toc.html" class="navigation-link">Full TOC</a></span></td>
180<td><div class="copyright-footer"><div class="copyright">Copyright © 2009 Eric Niebler</div>
181Distributed under the Boost Software License, Version 1.0. (See accompanying
182file LICENSE_1_0.txt or copy at <a class="reference external" href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</div></td></tr></table></body>
183</html>