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 <boost/log/attributes/attribute_set.hpp>"> 9<link rel="prev" href="operator_idm46079579849168.html" title="Function template operator<<"> 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: <<a class="link" href="../../attributes.html#header.boost.log.attributes.attribute_set_hpp" title="Header <boost/log/attributes/attribute_set.hpp>">boost/log/attributes/attribute_set.hpp</a>> 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"><</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">></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">&</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">&</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">&</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">&&</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">&</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">&</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"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></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">&</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"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></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"><</span><span class="keyword">typename</span> FwdIteratorT<span class="special">></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"><</span><span class="keyword">typename</span> FwdIteratorT<span class="special">,</span> <span class="keyword">typename</span> OutputIteratorT<span class="special">></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">&</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() && 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">&&</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">&</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() && 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">&</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"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></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">&</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"><</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">bool</span> <span class="special">></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"><</span><span class="keyword">typename</span> FwdIteratorT<span class="special">></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"><</span><span class="keyword">typename</span> FwdIteratorT<span class="special">,</span> <span class="keyword">typename</span> OutputIteratorT<span class="special">></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