• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>Class attribute_set</title>
5<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7<link rel="home" href="../../index.html" title="Chapter 1. Boost.Log v2">
8<link rel="up" href="../../attributes.html#header.boost.log.attributes.attribute_set_hpp" title="Header &lt;boost/log/attributes/attribute_set.hpp&gt;">
9<link rel="prev" href="operator_idm46079579849168.html" title="Function template operator&lt;&lt;">
10<link rel="next" href="swap_idm46079579738624.html" title="Function swap">
11</head>
12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
14<hr>
15<div class="spirit-nav">
16<a accesskey="p" href="operator_idm46079579849168.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../attributes.html#header.boost.log.attributes.attribute_set_hpp"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="swap_idm46079579738624.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
17</div>
18<div class="refentry">
19<a name="boost.log.attribute_set"></a><div class="titlepage"></div>
20<div class="refnamediv">
21<h2><span class="refentrytitle">Class attribute_set</span></h2>
22<p>boost::log::attribute_set — An attribute set class. </p>
23</div>
24<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
25<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../attributes.html#header.boost.log.attributes.attribute_set_hpp" title="Header &lt;boost/log/attributes/attribute_set.hpp&gt;">boost/log/attributes/attribute_set.hpp</a>&gt;
26
27</span>
28<span class="keyword">class</span> <a class="link" href="attribute_set.html" title="Class attribute_set">attribute_set</a> <span class="special">{</span>
29<span class="keyword">public</span><span class="special">:</span>
30  <span class="comment">// <a class="link" href="attribute_set.html#boost.log.attribute_settypes">types</a></span>
31  <span class="keyword">typedef</span> <a class="link" href="attribute_name.html" title="Class attribute_name">attribute_name</a>                           <a name="boost.log.attribute_set.key_type"></a><span class="identifier">key_type</span><span class="special">;</span>         <span class="comment">// Key type. </span>
32  <span class="keyword">typedef</span> <a class="link" href="attribute.html" title="Class attribute">attribute</a>                                <a name="boost.log.attribute_set.mapped_type"></a><span class="identifier">mapped_type</span><span class="special">;</span>      <span class="comment">// Mapped attribute type. </span>
33  <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span> <span class="keyword">const</span> <span class="identifier">key_type</span><span class="special">,</span> <span class="identifier">mapped_type</span> <span class="special">&gt;</span> <a name="boost.log.attribute_set.value_type"></a><span class="identifier">value_type</span><span class="special">;</span>       <span class="comment">// Value type. </span>
34  <span class="keyword">typedef</span> <span class="identifier">value_type</span> <span class="special">&amp;</span>                             <a name="boost.log.attribute_set.reference"></a><span class="identifier">reference</span><span class="special">;</span>        <span class="comment">// Reference type. </span>
35  <span class="keyword">typedef</span> <span class="identifier">value_type</span> <span class="keyword">const</span>  <span class="special">&amp;</span>                      <a name="boost.log.attribute_set.const_reference"></a><span class="identifier">const_reference</span><span class="special">;</span>  <span class="comment">// Const reference type. </span>
36  <span class="keyword">typedef</span> <span class="identifier">value_type</span> <span class="special">*</span>                             <a name="boost.log.attribute_set.pointer"></a><span class="identifier">pointer</span><span class="special">;</span>          <span class="comment">// Pointer type. </span>
37  <span class="keyword">typedef</span> <span class="identifier">value_type</span> <span class="keyword">const</span>  <span class="special">*</span>                      <a name="boost.log.attribute_set.const_pointer"></a><span class="identifier">const_pointer</span><span class="special">;</span>    <span class="comment">// Const pointer type. </span>
38  <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>                              <a name="boost.log.attribute_set.size_type"></a><span class="identifier">size_type</span><span class="special">;</span>        <span class="comment">// Size type. </span>
39  <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span>                           <a name="boost.log.attribute_set.difference_type"></a><span class="identifier">difference_type</span><span class="special">;</span>  <span class="comment">// Difference type. </span>
40  <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span>                   <a class="link" href="attribute_set.html#boost.log.attribute_set.iterator"><span class="identifier">iterator</span></a><span class="special">;</span>
41  <span class="keyword">typedef</span> <span class="identifier">implementation_defined</span>                   <a class="link" href="attribute_set.html#boost.log.attribute_set.const_iterator"><span class="identifier">const_iterator</span></a><span class="special">;</span>
42
43  <span class="comment">// <a class="link" href="attribute_set.html#boost.log.attribute_setconstruct-copy-destruct">construct/copy/destruct</a></span>
44  <a class="link" href="attribute_set.html#idm46079579749856-bb"><span class="identifier">attribute_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
45  <a class="link" href="attribute_set.html#idm46079579748000-bb"><span class="identifier">attribute_set</span></a><span class="special">(</span><a class="link" href="attribute_set.html" title="Class attribute_set">attribute_set</a> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
46  <a class="link" href="attribute_set.html#idm46079579745104-bb"><span class="identifier">attribute_set</span></a><span class="special">(</span><a class="link" href="attribute_set.html" title="Class attribute_set">attribute_set</a> <span class="special">&amp;&amp;</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
47  <a class="link" href="attribute_set.html" title="Class attribute_set">attribute_set</a> <span class="special">&amp;</span> <a class="link" href="attribute_set.html#idm46079579742400-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><a class="link" href="attribute_set.html" title="Class attribute_set">attribute_set</a><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
48  <a class="link" href="attribute_set.html#idm46079579743152-bb"><span class="special">~</span><span class="identifier">attribute_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
49
50  <span class="comment">// <a class="link" href="attribute_set.html#idm46079579825040-bb">public member functions</a></span>
51  <span class="keyword">void</span> <a class="link" href="attribute_set.html#idm46079579824480-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="attribute_set.html" title="Class attribute_set">attribute_set</a> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
52  <span class="identifier">iterator</span> <a class="link" href="attribute_set.html#idm46079579821104-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
53  <span class="identifier">iterator</span> <a class="link" href="attribute_set.html#idm46079579818960-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
54  <span class="identifier">const_iterator</span> <a class="link" href="attribute_set.html#idm46079579816800-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
55  <span class="identifier">const_iterator</span> <a class="link" href="attribute_set.html#idm46079579814640-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
56  <span class="identifier">size_type</span> <a class="link" href="attribute_set.html#idm46079579812480-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
57  <span class="keyword">bool</span> <a class="link" href="attribute_set.html#idm46079579810352-bb"><span class="identifier">empty</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
58  <span class="identifier">iterator</span> <a class="link" href="attribute_set.html#idm46079579808192-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">key_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
59  <span class="identifier">const_iterator</span> <a class="link" href="attribute_set.html#idm46079579804608-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="identifier">key_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
60  <span class="identifier">size_type</span> <a class="link" href="attribute_set.html#idm46079579800592-bb"><span class="identifier">count</span></a><span class="special">(</span><span class="identifier">key_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
61  <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="attribute_set.html#idm46079579796880-bb"><span class="keyword">operator</span><span class="special">[</span><span class="special">]</span></a><span class="special">(</span><span class="identifier">key_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
62  <span class="identifier">mapped_type</span> <a class="link" href="attribute_set.html#idm46079579790080-bb"><span class="keyword">operator</span><span class="special">[</span><span class="special">]</span></a><span class="special">(</span><span class="identifier">key_type</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
63  <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">&gt;</span> <a class="link" href="attribute_set.html#idm46079579786432-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">key_type</span><span class="special">,</span> <span class="identifier">mapped_type</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
64  <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">&gt;</span> <a class="link" href="attribute_set.html#idm46079579781872-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">const_reference</span><span class="special">)</span><span class="special">;</span>
65  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FwdIteratorT<span class="special">&gt;</span> <span class="keyword">void</span> <a class="link" href="attribute_set.html#idm46079579778432-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">FwdIteratorT</span><span class="special">,</span> <span class="identifier">FwdIteratorT</span><span class="special">)</span><span class="special">;</span>
66  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FwdIteratorT<span class="special">,</span> <span class="keyword">typename</span> OutputIteratorT<span class="special">&gt;</span>
67    <span class="keyword">void</span> <a class="link" href="attribute_set.html#idm46079579773712-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">FwdIteratorT</span><span class="special">,</span> <span class="identifier">FwdIteratorT</span><span class="special">,</span> <span class="identifier">OutputIteratorT</span><span class="special">)</span><span class="special">;</span>
68  <span class="identifier">size_type</span> <a class="link" href="attribute_set.html#idm46079579767216-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">key_type</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
69  <span class="keyword">void</span> <a class="link" href="attribute_set.html#idm46079579763040-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
70  <span class="keyword">void</span> <a class="link" href="attribute_set.html#idm46079579758848-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">iterator</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
71  <span class="keyword">void</span> <a class="link" href="attribute_set.html#idm46079579752736-bb"><span class="identifier">clear</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
72<span class="special">}</span><span class="special">;</span></pre></div>
73<div class="refsect1">
74<a name="idm44984885391408"></a><h2>Description</h2>
75<p>An attribute set is an associative container with attribute name as a key and pointer to the attribute as a mapped value. The container allows storing only one element for each distinct key value. In most regards attribute set container provides interface similar to <code class="computeroutput">std::unordered_map</code>. However, there are differences in <code class="computeroutput">operator</code>[] semantics and a number of optimizations with regard to iteration. Besides, attribute names are stored as a read-only <code class="computeroutput"><a class="link" href="attribute_name.html" title="Class attribute_name">attribute_name</a></code>'s instead of <code class="computeroutput">std::string</code>, which saves memory and CPU time. </p>
76<div class="refsect2">
77<a name="idm44984885386880"></a><h3>
78<a name="boost.log.attribute_settypes"></a><code class="computeroutput">attribute_set</code>
79        public
80       types</h3>
81<div class="orderedlist"><ol class="orderedlist" type="1">
82<li class="listitem">
83<p>
84<span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.log.attribute_set.iterator"></a><span class="identifier">iterator</span><span class="special">;</span></p>
85<p>Iterator type. The iterator complies to the bidirectional iterator requirements. </p>
86</li>
87<li class="listitem">
88<p>
89<span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <a name="boost.log.attribute_set.const_iterator"></a><span class="identifier">const_iterator</span><span class="special">;</span></p>
90<p>Constant iterator type. The iterator complies to the bidirectional iterator requirements with read-only capabilities. </p>
91</li>
92</ol></div>
93</div>
94<div class="refsect2">
95<a name="idm44984885376960"></a><h3>
96<a name="boost.log.attribute_setconstruct-copy-destruct"></a><code class="computeroutput">attribute_set</code>
97        public
98       construct/copy/destruct</h3>
99<div class="orderedlist"><ol class="orderedlist" type="1">
100<li class="listitem">
101<pre class="literallayout"><a name="idm46079579749856-bb"></a><span class="identifier">attribute_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
102<p>Default constructor.</p>
103<p>
104</p>
105<div class="variablelist"><table border="0" class="variablelist compact">
106<colgroup>
107<col align="left" valign="top">
108<col>
109</colgroup>
110<tbody><tr>
111<td><p><span class="term">Postconditions:</span></p></td>
112<td><p><code class="computeroutput">empty() == true</code> </p></td>
113</tr></tbody>
114</table></div>
115</li>
116<li class="listitem">
117<pre class="literallayout"><a name="idm46079579748000-bb"></a><span class="identifier">attribute_set</span><span class="special">(</span><a class="link" href="attribute_set.html" title="Class attribute_set">attribute_set</a> <span class="keyword">const</span> <span class="special">&amp;</span> that<span class="special">)</span><span class="special">;</span></pre>
118<p>Copy constructor.</p>
119<p>
120</p>
121<div class="variablelist"><table border="0" class="variablelist compact">
122<colgroup>
123<col align="left" valign="top">
124<col>
125</colgroup>
126<tbody><tr>
127<td><p><span class="term">Postconditions:</span></p></td>
128<td><p><code class="computeroutput">size() == that.size() &amp;&amp; std::equal(begin(), end(), that.begin()) == true</code> </p></td>
129</tr></tbody>
130</table></div>
131</li>
132<li class="listitem">
133<pre class="literallayout"><a name="idm46079579745104-bb"></a><span class="identifier">attribute_set</span><span class="special">(</span><a class="link" href="attribute_set.html" title="Class attribute_set">attribute_set</a> <span class="special">&amp;&amp;</span> that<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
134<p>Move constructor </p>
135</li>
136<li class="listitem">
137<pre class="literallayout"><a class="link" href="attribute_set.html" title="Class attribute_set">attribute_set</a> <span class="special">&amp;</span> <a name="idm46079579742400-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><a class="link" href="attribute_set.html" title="Class attribute_set">attribute_set</a> that<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
138<p>Copy assignment operator.</p>
139<p>
140</p>
141<div class="variablelist"><table border="0" class="variablelist compact">
142<colgroup>
143<col align="left" valign="top">
144<col>
145</colgroup>
146<tbody><tr>
147<td><p><span class="term">Postconditions:</span></p></td>
148<td><p><code class="computeroutput">size() == that.size() &amp;&amp; std::equal(begin(), end(), that.begin()) == true</code> </p></td>
149</tr></tbody>
150</table></div>
151</li>
152<li class="listitem">
153<pre class="literallayout"><a name="idm46079579743152-bb"></a><span class="special">~</span><span class="identifier">attribute_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
154<p>Destructor. All stored references to attributes are released. </p>
155</li>
156</ol></div>
157</div>
158<div class="refsect2">
159<a name="idm44984885339632"></a><h3>
160<a name="idm46079579825040-bb"></a><code class="computeroutput">attribute_set</code> public member functions</h3>
161<div class="orderedlist"><ol class="orderedlist" type="1">
162<li class="listitem">
163<pre class="literallayout"><span class="keyword">void</span> <a name="idm46079579824480-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="attribute_set.html" title="Class attribute_set">attribute_set</a> <span class="special">&amp;</span> that<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
164<p>Swaps two instances of the container.</p>
165<p><span class="bold"><strong>Throws:</strong></span> Nothing. </p>
166</li>
167<li class="listitem">
168<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm46079579821104-bb"></a><span class="identifier">begin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
169<p>
170</p>
171<div class="variablelist"><table border="0" class="variablelist compact">
172<colgroup>
173<col align="left" valign="top">
174<col>
175</colgroup>
176<tbody><tr>
177<td><p><span class="term">Returns:</span></p></td>
178<td><p>Iterator to the first element of the container. </p></td>
179</tr></tbody>
180</table></div>
181</li>
182<li class="listitem">
183<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm46079579818960-bb"></a><span class="identifier">end</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
184<p>
185</p>
186<div class="variablelist"><table border="0" class="variablelist compact">
187<colgroup>
188<col align="left" valign="top">
189<col>
190</colgroup>
191<tbody><tr>
192<td><p><span class="term">Returns:</span></p></td>
193<td><p>Iterator to the after-the-last element of the container. </p></td>
194</tr></tbody>
195</table></div>
196</li>
197<li class="listitem">
198<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm46079579816800-bb"></a><span class="identifier">begin</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
199<p>
200</p>
201<div class="variablelist"><table border="0" class="variablelist compact">
202<colgroup>
203<col align="left" valign="top">
204<col>
205</colgroup>
206<tbody><tr>
207<td><p><span class="term">Returns:</span></p></td>
208<td><p>Constant iterator to the first element of the container. </p></td>
209</tr></tbody>
210</table></div>
211</li>
212<li class="listitem">
213<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm46079579814640-bb"></a><span class="identifier">end</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
214<p>
215</p>
216<div class="variablelist"><table border="0" class="variablelist compact">
217<colgroup>
218<col align="left" valign="top">
219<col>
220</colgroup>
221<tbody><tr>
222<td><p><span class="term">Returns:</span></p></td>
223<td><p>Constant iterator to the after-the-last element of the container. </p></td>
224</tr></tbody>
225</table></div>
226</li>
227<li class="listitem">
228<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm46079579812480-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
229<p>
230</p>
231<div class="variablelist"><table border="0" class="variablelist compact">
232<colgroup>
233<col align="left" valign="top">
234<col>
235</colgroup>
236<tbody><tr>
237<td><p><span class="term">Returns:</span></p></td>
238<td><p>Number of elements in the container. </p></td>
239</tr></tbody>
240</table></div>
241</li>
242<li class="listitem">
243<pre class="literallayout"><span class="keyword">bool</span> <a name="idm46079579810352-bb"></a><span class="identifier">empty</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
244<p>
245</p>
246<div class="variablelist"><table border="0" class="variablelist compact">
247<colgroup>
248<col align="left" valign="top">
249<col>
250</colgroup>
251<tbody><tr>
252<td><p><span class="term">Returns:</span></p></td>
253<td><p>true if there are no elements in the container, false otherwise. </p></td>
254</tr></tbody>
255</table></div>
256</li>
257<li class="listitem">
258<pre class="literallayout"><span class="identifier">iterator</span> <a name="idm46079579808192-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">key_type</span> key<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
259<p>The method finds the attribute by name.</p>
260<p>
261
262</p>
263<div class="variablelist"><table border="0" class="variablelist compact">
264<colgroup>
265<col align="left" valign="top">
266<col>
267</colgroup>
268<tbody>
269<tr>
270<td><p><span class="term">Parameters:</span></p></td>
271<td><div class="variablelist"><table border="0" class="variablelist compact">
272<colgroup>
273<col align="left" valign="top">
274<col>
275</colgroup>
276<tbody><tr>
277<td><p><span class="term"><code class="computeroutput">key</code></span></p></td>
278<td><p>Attribute name. </p></td>
279</tr></tbody>
280</table></div></td>
281</tr>
282<tr>
283<td><p><span class="term">Returns:</span></p></td>
284<td><p>Iterator to the found element or end() if the attribute with such name is not found. </p></td>
285</tr>
286</tbody>
287</table></div>
288</li>
289<li class="listitem">
290<pre class="literallayout"><span class="identifier">const_iterator</span> <a name="idm46079579804608-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="identifier">key_type</span> key<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
291<p>The method finds the attribute by name.</p>
292<p>
293
294</p>
295<div class="variablelist"><table border="0" class="variablelist compact">
296<colgroup>
297<col align="left" valign="top">
298<col>
299</colgroup>
300<tbody>
301<tr>
302<td><p><span class="term">Parameters:</span></p></td>
303<td><div class="variablelist"><table border="0" class="variablelist compact">
304<colgroup>
305<col align="left" valign="top">
306<col>
307</colgroup>
308<tbody><tr>
309<td><p><span class="term"><code class="computeroutput">key</code></span></p></td>
310<td><p>Attribute name. </p></td>
311</tr></tbody>
312</table></div></td>
313</tr>
314<tr>
315<td><p><span class="term">Returns:</span></p></td>
316<td><p>Iterator to the found element or <code class="computeroutput">end()</code> if the attribute with such name is not found. </p></td>
317</tr>
318</tbody>
319</table></div>
320</li>
321<li class="listitem">
322<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm46079579800592-bb"></a><span class="identifier">count</span><span class="special">(</span><span class="identifier">key_type</span> key<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
323<p>The method counts the number of the attribute occurrences in the container. Since there can be only one attribute with a particular key, the method always return 0 or 1.</p>
324<p>
325
326</p>
327<div class="variablelist"><table border="0" class="variablelist compact">
328<colgroup>
329<col align="left" valign="top">
330<col>
331</colgroup>
332<tbody>
333<tr>
334<td><p><span class="term">Parameters:</span></p></td>
335<td><div class="variablelist"><table border="0" class="variablelist compact">
336<colgroup>
337<col align="left" valign="top">
338<col>
339</colgroup>
340<tbody><tr>
341<td><p><span class="term"><code class="computeroutput">key</code></span></p></td>
342<td><p>Attribute name. </p></td>
343</tr></tbody>
344</table></div></td>
345</tr>
346<tr>
347<td><p><span class="term">Returns:</span></p></td>
348<td><p>The number of times the attribute is found in the container. </p></td>
349</tr>
350</tbody>
351</table></div>
352</li>
353<li class="listitem">
354<pre class="literallayout"><span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a name="idm46079579796880-bb"></a><span class="keyword">operator</span><span class="special">[</span><span class="special">]</span><span class="special">(</span><span class="identifier">key_type</span> key<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
355<p>Combined lookup/insertion operator. The operator semantics depends on the further usage of the returned reference. </p>
356<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
357<li class="listitem"><p>If the reference is used as an assignment target, the assignment expression is equivalent to element insertion, where the element is composed of the second argument of the <code class="computeroutput">operator</code>[] as a key and the second argument of assignment as a mapped value. </p></li>
358<li class="listitem"><p>If the returned reference is used in context where a conversion to the mapped type is required, the result of the conversion is equivalent to the mapped value found with the second argument of the <code class="computeroutput">operator</code>[] as a key, if such an element exists in the container, or a default-constructed mapped value, if an element does not exist in the container.</p></li>
359</ul></div>
360<p>
361
362
363</p>
364<div class="variablelist"><table border="0" class="variablelist compact">
365<colgroup>
366<col align="left" valign="top">
367<col>
368</colgroup>
369<tbody>
370<tr>
371<td><p><span class="term">Parameters:</span></p></td>
372<td><div class="variablelist"><table border="0" class="variablelist compact">
373<colgroup>
374<col align="left" valign="top">
375<col>
376</colgroup>
377<tbody><tr>
378<td><p><span class="term"><code class="computeroutput">key</code></span></p></td>
379<td><p>Attribute name. </p></td>
380</tr></tbody>
381</table></div></td>
382</tr>
383<tr>
384<td><p><span class="term">Returns:</span></p></td>
385<td><p>A smart reference object of unspecified type. </p></td>
386</tr>
387</tbody>
388</table></div>
389</li>
390<li class="listitem">
391<pre class="literallayout"><span class="identifier">mapped_type</span> <a name="idm46079579790080-bb"></a><span class="keyword">operator</span><span class="special">[</span><span class="special">]</span><span class="special">(</span><span class="identifier">key_type</span> key<span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
392<p>Lookup operator</p>
393<p>
394
395</p>
396<div class="variablelist"><table border="0" class="variablelist compact">
397<colgroup>
398<col align="left" valign="top">
399<col>
400</colgroup>
401<tbody>
402<tr>
403<td><p><span class="term">Parameters:</span></p></td>
404<td><div class="variablelist"><table border="0" class="variablelist compact">
405<colgroup>
406<col align="left" valign="top">
407<col>
408</colgroup>
409<tbody><tr>
410<td><p><span class="term"><code class="computeroutput">key</code></span></p></td>
411<td><p>Attribute name. </p></td>
412</tr></tbody>
413</table></div></td>
414</tr>
415<tr>
416<td><p><span class="term">Returns:</span></p></td>
417<td><p>If an element with the corresponding attribute name is found in the container, its mapped value is returned. Otherwise a default-constructed mapped value is returned. </p></td>
418</tr>
419</tbody>
420</table></div>
421</li>
422<li class="listitem">
423<pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">&gt;</span> <a name="idm46079579786432-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">key_type</span> key<span class="special">,</span> <span class="identifier">mapped_type</span> <span class="keyword">const</span> <span class="special">&amp;</span> data<span class="special">)</span><span class="special">;</span></pre>
424<p>Insertion method</p>
425<p>
426
427</p>
428<div class="variablelist"><table border="0" class="variablelist compact">
429<colgroup>
430<col align="left" valign="top">
431<col>
432</colgroup>
433<tbody>
434<tr>
435<td><p><span class="term">Parameters:</span></p></td>
436<td><div class="variablelist"><table border="0" class="variablelist compact">
437<colgroup>
438<col align="left" valign="top">
439<col>
440</colgroup>
441<tbody>
442<tr>
443<td><p><span class="term"><code class="computeroutput">data</code></span></p></td>
444<td><p>Pointer to the attribute. Must not be NULL. </p></td>
445</tr>
446<tr>
447<td><p><span class="term"><code class="computeroutput">key</code></span></p></td>
448<td><p>Attribute name. </p></td>
449</tr>
450</tbody>
451</table></div></td>
452</tr>
453<tr>
454<td><p><span class="term">Returns:</span></p></td>
455<td><p>A pair of values. If second is true, the insertion succeeded and the first component points to the inserted element. Otherwise the first component points to the element that prevents insertion. </p></td>
456</tr>
457</tbody>
458</table></div>
459</li>
460<li class="listitem">
461<pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">&gt;</span> <a name="idm46079579781872-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_reference</span> value<span class="special">)</span><span class="special">;</span></pre>
462<p>Insertion method</p>
463<p>
464
465</p>
466<div class="variablelist"><table border="0" class="variablelist compact">
467<colgroup>
468<col align="left" valign="top">
469<col>
470</colgroup>
471<tbody>
472<tr>
473<td><p><span class="term">Parameters:</span></p></td>
474<td><div class="variablelist"><table border="0" class="variablelist compact">
475<colgroup>
476<col align="left" valign="top">
477<col>
478</colgroup>
479<tbody><tr>
480<td><p><span class="term"><code class="computeroutput">value</code></span></p></td>
481<td><p>An element to be inserted. </p></td>
482</tr></tbody>
483</table></div></td>
484</tr>
485<tr>
486<td><p><span class="term">Returns:</span></p></td>
487<td><p>A pair of values. If second is true, the insertion succeeded and the first component points to the inserted element. Otherwise the first component points to the element that prevents insertion. </p></td>
488</tr>
489</tbody>
490</table></div>
491</li>
492<li class="listitem">
493<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FwdIteratorT<span class="special">&gt;</span>
494  <span class="keyword">void</span> <a name="idm46079579778432-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">FwdIteratorT</span> begin<span class="special">,</span> <span class="identifier">FwdIteratorT</span> end<span class="special">)</span><span class="special">;</span></pre>
495<p>Mass insertion method.</p>
496<p>
497</p>
498<div class="variablelist"><table border="0" class="variablelist compact">
499<colgroup>
500<col align="left" valign="top">
501<col>
502</colgroup>
503<tbody><tr>
504<td><p><span class="term">Parameters:</span></p></td>
505<td><div class="variablelist"><table border="0" class="variablelist compact">
506<colgroup>
507<col align="left" valign="top">
508<col>
509</colgroup>
510<tbody>
511<tr>
512<td><p><span class="term"><code class="computeroutput">begin</code></span></p></td>
513<td><p>A forward iterator that points to the first element to be inserted. </p></td>
514</tr>
515<tr>
516<td><p><span class="term"><code class="computeroutput">end</code></span></p></td>
517<td><p>A forward iterator that points to the after-the-last element to be inserted. </p></td>
518</tr>
519</tbody>
520</table></div></td>
521</tr></tbody>
522</table></div>
523</li>
524<li class="listitem">
525<pre class="literallayout"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> FwdIteratorT<span class="special">,</span> <span class="keyword">typename</span> OutputIteratorT<span class="special">&gt;</span>
526  <span class="keyword">void</span> <a name="idm46079579773712-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">FwdIteratorT</span> begin<span class="special">,</span> <span class="identifier">FwdIteratorT</span> end<span class="special">,</span> <span class="identifier">OutputIteratorT</span> out<span class="special">)</span><span class="special">;</span></pre>
527<p>Mass insertion method with ability to acquire iterators to the inserted elements.</p>
528<p>
529</p>
530<div class="variablelist"><table border="0" class="variablelist compact">
531<colgroup>
532<col align="left" valign="top">
533<col>
534</colgroup>
535<tbody><tr>
536<td><p><span class="term">Parameters:</span></p></td>
537<td><div class="variablelist"><table border="0" class="variablelist compact">
538<colgroup>
539<col align="left" valign="top">
540<col>
541</colgroup>
542<tbody>
543<tr>
544<td><p><span class="term"><code class="computeroutput">begin</code></span></p></td>
545<td><p>A forward iterator that points to the first element to be inserted. </p></td>
546</tr>
547<tr>
548<td><p><span class="term"><code class="computeroutput">end</code></span></p></td>
549<td><p>A forward iterator that points to the after-the-last element to be inserted. </p></td>
550</tr>
551<tr>
552<td><p><span class="term"><code class="computeroutput">out</code></span></p></td>
553<td><p>An output iterator that receives results of insertion of the elements </p></td>
554</tr>
555</tbody>
556</table></div></td>
557</tr></tbody>
558</table></div>
559</li>
560<li class="listitem">
561<pre class="literallayout"><span class="identifier">size_type</span> <a name="idm46079579767216-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">key_type</span> key<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
562<p>The method erases all attributes with the specified name</p>
563<p>
564
565
566</p>
567<div class="variablelist"><table border="0" class="variablelist compact">
568<colgroup>
569<col align="left" valign="top">
570<col>
571</colgroup>
572<tbody>
573<tr>
574<td><p><span class="term">Parameters:</span></p></td>
575<td><div class="variablelist"><table border="0" class="variablelist compact">
576<colgroup>
577<col align="left" valign="top">
578<col>
579</colgroup>
580<tbody><tr>
581<td><p><span class="term"><code class="computeroutput">key</code></span></p></td>
582<td><p>Attribute name. </p></td>
583</tr></tbody>
584</table></div></td>
585</tr>
586<tr>
587<td><p><span class="term">Postconditions:</span></p></td>
588<td><p>All iterators to the erased elements become invalid. </p></td>
589</tr>
590<tr>
591<td><p><span class="term">Returns:</span></p></td>
592<td><p>Tne number of erased elements </p></td>
593</tr>
594</tbody>
595</table></div>
596</li>
597<li class="listitem">
598<pre class="literallayout"><span class="keyword">void</span> <a name="idm46079579763040-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">iterator</span> it<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
599<p>The method erases the specified attribute</p>
600<p>
601
602
603</p>
604<div class="variablelist"><table border="0" class="variablelist compact">
605<colgroup>
606<col align="left" valign="top">
607<col>
608</colgroup>
609<tbody>
610<tr>
611<td><p><span class="term">Parameters:</span></p></td>
612<td><div class="variablelist"><table border="0" class="variablelist compact">
613<colgroup>
614<col align="left" valign="top">
615<col>
616</colgroup>
617<tbody><tr>
618<td><p><span class="term"><code class="computeroutput">it</code></span></p></td>
619<td><p>A valid iterator to the element to be erased. </p></td>
620</tr></tbody>
621</table></div></td>
622</tr>
623<tr>
624<td><p><span class="term">Postconditions:</span></p></td>
625<td><p>All iterators to the erased element become invalid. </p></td>
626</tr>
627<tr>
628<td><p><span class="term">Returns:</span></p></td>
629<td><p>Tne number of erased elements </p></td>
630</tr>
631</tbody>
632</table></div>
633</li>
634<li class="listitem">
635<pre class="literallayout"><span class="keyword">void</span> <a name="idm46079579758848-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">iterator</span> begin<span class="special">,</span> <span class="identifier">iterator</span> end<span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
636<p>The method erases all attributes within the specified range</p>
637<p>
638
639
640</p>
641<div class="variablelist"><table border="0" class="variablelist compact">
642<colgroup>
643<col align="left" valign="top">
644<col>
645</colgroup>
646<tbody>
647<tr>
648<td><p><span class="term">Parameters:</span></p></td>
649<td><div class="variablelist"><table border="0" class="variablelist compact">
650<colgroup>
651<col align="left" valign="top">
652<col>
653</colgroup>
654<tbody>
655<tr>
656<td><p><span class="term"><code class="computeroutput">begin</code></span></p></td>
657<td><p>An iterator that points to the first element to be erased. </p></td>
658</tr>
659<tr>
660<td><p><span class="term"><code class="computeroutput">end</code></span></p></td>
661<td><p>An iterator that points to the after-the-last element to be erased. </p></td>
662</tr>
663</tbody>
664</table></div></td>
665</tr>
666<tr>
667<td><p><span class="term">Requires:</span></p></td>
668<td><p><span class="emphasis"><em>end</em></span> is reachable from <span class="emphasis"><em>begin</em></span> with a finite number of increments. </p></td>
669</tr>
670<tr>
671<td><p><span class="term">Postconditions:</span></p></td>
672<td><p>All iterators to the erased elements become invalid. </p></td>
673</tr>
674</tbody>
675</table></div>
676</li>
677<li class="listitem">
678<pre class="literallayout"><span class="keyword">void</span> <a name="idm46079579752736-bb"></a><span class="identifier">clear</span><span class="special">(</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span></pre>
679<p>The method removes all elements from the container</p>
680<p>
681</p>
682<div class="variablelist"><table border="0" class="variablelist compact">
683<colgroup>
684<col align="left" valign="top">
685<col>
686</colgroup>
687<tbody><tr>
688<td><p><span class="term">Postconditions:</span></p></td>
689<td><p><code class="computeroutput">empty() == true</code> </p></td>
690</tr></tbody>
691</table></div>
692</li>
693</ol></div>
694</div>
695</div>
696</div>
697<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
698<td align="left"></td>
699<td align="right"><div class="copyright-footer">Copyright © 2007-2019 Andrey Semashev<p>
700        Distributed under the Boost Software License, Version 1.0. (See accompanying
701        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>).
702      </p>
703</div></td>
704</tr></table>
705<hr>
706<div class="spirit-nav">
707<a accesskey="p" href="operator_idm46079579849168.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../attributes.html#header.boost.log.attributes.attribute_set_hpp"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="swap_idm46079579738624.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
708</div>
709</body>
710</html>
711