You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

239 lines
24 KiB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.4"/>
  7. <title>tbb::interface6::enumerable_thread_specific&lt; T, Allocator, ETS_key_type &gt; Class Template Reference</title>
  8. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  9. <script type="text/javascript" src="jquery.js"></script>
  10. <script type="text/javascript" src="dynsections.js"></script>
  11. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  12. </head>
  13. <body>
  14. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  15. <!-- end header part -->
  16. <!-- Generated by Doxygen 1.8.4 -->
  17. <div id="navrow1" class="tabs">
  18. <ul class="tablist">
  19. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  20. <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
  21. <li><a href="modules.html"><span>Modules</span></a></li>
  22. <li><a href="namespaces.html"><span>Namespaces</span></a></li>
  23. <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
  24. <li><a href="files.html"><span>Files</span></a></li>
  25. </ul>
  26. </div>
  27. <div id="navrow2" class="tabs2">
  28. <ul class="tablist">
  29. <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
  30. <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
  31. <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
  32. </ul>
  33. </div>
  34. <div id="nav-path" class="navpath">
  35. <ul>
  36. <li class="navelem"><a class="el" href="a00222.html">tbb</a></li><li class="navelem"><b>interface6</b></li><li class="navelem"><a class="el" href="a00052.html">enumerable_thread_specific</a></li> </ul>
  37. </div>
  38. </div><!-- top -->
  39. <div class="header">
  40. <div class="summary">
  41. <a href="#nested-classes">Classes</a> &#124;
  42. <a href="#pub-types">Public Types</a> &#124;
  43. <a href="#pub-methods">Public Member Functions</a> &#124;
  44. <a href="#friends">Friends</a> &#124;
  45. <a href="a00354.html">List of all members</a> </div>
  46. <div class="headertitle">
  47. <div class="title">tbb::interface6::enumerable_thread_specific&lt; T, Allocator, ETS_key_type &gt; Class Template Reference<div class="ingroups"><a class="el" href="a00235.html">Containers</a></div></div> </div>
  48. </div><!--header-->
  49. <div class="contents">
  50. <p>The <a class="el" href="a00052.html" title="The enumerable_thread_specific container. ">enumerable_thread_specific</a> container.
  51. <a href="a00052.html#details">More...</a></p>
  52. <p><code>#include &lt;enumerable_thread_specific.h&gt;</code></p>
  53. <div class="dynheader">
  54. Inheritance diagram for tbb::interface6::enumerable_thread_specific&lt; T, Allocator, ETS_key_type &gt;:</div>
  55. <div class="dyncontent">
  56. <div class="center">
  57. <img src="a00052.png" usemap="#tbb::interface6::enumerable_thread_specific&lt; T, Allocator, ETS_key_type &gt;_map" alt=""/>
  58. <map id="tbb::interface6::enumerable_thread_specific&lt; T, Allocator, ETS_key_type &gt;_map" name="tbb::interface6::enumerable_thread_specific&lt; T, Allocator, ETS_key_type &gt;_map">
  59. </map>
  60. </div></div>
  61. <table class="memberdecls">
  62. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
  63. Public Types</h2></td></tr>
  64. <tr class="memitem:ad50ceae1b0e91d0fd31fe506e690692b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad50ceae1b0e91d0fd31fe506e690692b"></a>
  65. typedef Allocator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#ad50ceae1b0e91d0fd31fe506e690692b">allocator_type</a></td></tr>
  66. <tr class="memdesc:ad50ceae1b0e91d0fd31fe506e690692b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic types. <br/></td></tr>
  67. <tr class="separator:ad50ceae1b0e91d0fd31fe506e690692b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  68. <tr class="memitem:a931b97e237cd2ed6eabe0d939bd141da"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a931b97e237cd2ed6eabe0d939bd141da"></a>
  69. typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b></td></tr>
  70. <tr class="separator:a931b97e237cd2ed6eabe0d939bd141da"><td class="memSeparator" colspan="2">&#160;</td></tr>
  71. <tr class="memitem:a353a42e7bdda1720b7150cca99cf730b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a353a42e7bdda1720b7150cca99cf730b"></a>
  72. typedef T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b></td></tr>
  73. <tr class="separator:a353a42e7bdda1720b7150cca99cf730b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  74. <tr class="memitem:a6c722a4b20fb6cae21316240b61d98d2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6c722a4b20fb6cae21316240b61d98d2"></a>
  75. typedef const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>const_reference</b></td></tr>
  76. <tr class="separator:a6c722a4b20fb6cae21316240b61d98d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  77. <tr class="memitem:ad88abc185701214e53e81973235ab6de"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad88abc185701214e53e81973235ab6de"></a>
  78. typedef T *&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr>
  79. <tr class="separator:ad88abc185701214e53e81973235ab6de"><td class="memSeparator" colspan="2">&#160;</td></tr>
  80. <tr class="memitem:a4aff438f46812452ab4a6f893df94fc3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4aff438f46812452ab4a6f893df94fc3"></a>
  81. typedef const T *&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b></td></tr>
  82. <tr class="separator:a4aff438f46812452ab4a6f893df94fc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  83. <tr class="memitem:a65e9cdc58e19d96b31b467c70c79122d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65e9cdc58e19d96b31b467c70c79122d"></a>
  84. typedef <br class="typebreak"/>
  85. internal_collection_type::size_type&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b></td></tr>
  86. <tr class="separator:a65e9cdc58e19d96b31b467c70c79122d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  87. <tr class="memitem:a0b6f002367fa7ca2e3e245e76d91ea7e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b6f002367fa7ca2e3e245e76d91ea7e"></a>
  88. typedef <br class="typebreak"/>
  89. internal_collection_type::difference_type&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b></td></tr>
  90. <tr class="separator:a0b6f002367fa7ca2e3e245e76d91ea7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  91. <tr class="memitem:a713e97c954eef04e3fda62cf8c8bd63f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a713e97c954eef04e3fda62cf8c8bd63f"></a>
  92. typedef <br class="typebreak"/>
  93. internal::enumerable_thread_specific_iterator<br class="typebreak"/>
  94. &lt; <a class="el" href="a00046.html">internal_collection_type</a>, <br class="typebreak"/>
  95. value_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b></td></tr>
  96. <tr class="separator:a713e97c954eef04e3fda62cf8c8bd63f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  97. <tr class="memitem:a9dacd1e38e45ee787faafd3a71b23fc2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9dacd1e38e45ee787faafd3a71b23fc2"></a>
  98. typedef <br class="typebreak"/>
  99. internal::enumerable_thread_specific_iterator<br class="typebreak"/>
  100. &lt; <a class="el" href="a00046.html">internal_collection_type</a>, <br class="typebreak"/>
  101. const value_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b></td></tr>
  102. <tr class="separator:a9dacd1e38e45ee787faafd3a71b23fc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  103. <tr class="memitem:a2200200e24eaf5ed6496ff3eaa6c4dcc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2200200e24eaf5ed6496ff3eaa6c4dcc"></a>
  104. typedef generic_range_type<br class="typebreak"/>
  105. &lt; iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>range_type</b></td></tr>
  106. <tr class="separator:a2200200e24eaf5ed6496ff3eaa6c4dcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. <tr class="memitem:a9877dc4e09dc6c625a86a463f56f180d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9877dc4e09dc6c625a86a463f56f180d"></a>
  108. typedef generic_range_type<br class="typebreak"/>
  109. &lt; const_iterator &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>const_range_type</b></td></tr>
  110. <tr class="separator:a9877dc4e09dc6c625a86a463f56f180d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  111. </table><table class="memberdecls">
  112. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  113. Public Member Functions</h2></td></tr>
  114. <tr class="memitem:ad95ccef01367c0b6d75f6f91f5bf5315"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad95ccef01367c0b6d75f6f91f5bf5315"></a>
  115. &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#ad95ccef01367c0b6d75f6f91f5bf5315">enumerable_thread_specific</a> ()</td></tr>
  116. <tr class="memdesc:ad95ccef01367c0b6d75f6f91f5bf5315"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. Each local instance of T is default constructed. <br/></td></tr>
  117. <tr class="separator:ad95ccef01367c0b6d75f6f91f5bf5315"><td class="memSeparator" colspan="2">&#160;</td></tr>
  118. <tr class="memitem:a6c4bec58ae7f0f2b6c77f0baf79623ee"><td class="memTemplParams" colspan="2"><a class="anchor" id="a6c4bec58ae7f0f2b6c77f0baf79623ee"></a>
  119. template&lt;typename Finit &gt; </td></tr>
  120. <tr class="memitem:a6c4bec58ae7f0f2b6c77f0baf79623ee"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00052.html#a6c4bec58ae7f0f2b6c77f0baf79623ee">enumerable_thread_specific</a> (Finit finit)</td></tr>
  121. <tr class="memdesc:a6c4bec58ae7f0f2b6c77f0baf79623ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor with initializer functor. Each local instance of T is constructed by T(finit()). <br/></td></tr>
  122. <tr class="separator:a6c4bec58ae7f0f2b6c77f0baf79623ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
  123. <tr class="memitem:a6f0249ee95fa56665da4b6984f3a685a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6f0249ee95fa56665da4b6984f3a685a"></a>
  124. &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#a6f0249ee95fa56665da4b6984f3a685a">enumerable_thread_specific</a> (const T &amp;exemplar)</td></tr>
  125. <tr class="memdesc:a6f0249ee95fa56665da4b6984f3a685a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor with exemplar. Each local instance of T is copied-constructed from the exemplar. <br/></td></tr>
  126. <tr class="separator:a6f0249ee95fa56665da4b6984f3a685a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  127. <tr class="memitem:a6ea8d717f770acb63efc406df52d4585"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ea8d717f770acb63efc406df52d4585"></a>
  128. &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#a6ea8d717f770acb63efc406df52d4585">~enumerable_thread_specific</a> ()</td></tr>
  129. <tr class="memdesc:a6ea8d717f770acb63efc406df52d4585"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br/></td></tr>
  130. <tr class="separator:a6ea8d717f770acb63efc406df52d4585"><td class="memSeparator" colspan="2">&#160;</td></tr>
  131. <tr class="memitem:aea846c6cbafbe2ff6bde6e8c2a2ee97e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea846c6cbafbe2ff6bde6e8c2a2ee97e"></a>
  132. reference&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#aea846c6cbafbe2ff6bde6e8c2a2ee97e">local</a> ()</td></tr>
  133. <tr class="memdesc:aea846c6cbafbe2ff6bde6e8c2a2ee97e"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns reference to local, discarding exists <br/></td></tr>
  134. <tr class="separator:aea846c6cbafbe2ff6bde6e8c2a2ee97e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  135. <tr class="memitem:abbbc24a5816dc163d5df057c5e7f379d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abbbc24a5816dc163d5df057c5e7f379d"></a>
  136. reference&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#abbbc24a5816dc163d5df057c5e7f379d">local</a> (bool &amp;exists)</td></tr>
  137. <tr class="memdesc:abbbc24a5816dc163d5df057c5e7f379d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reference to calling thread's local copy, creating one if necessary. <br/></td></tr>
  138. <tr class="separator:abbbc24a5816dc163d5df057c5e7f379d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  139. <tr class="memitem:a4c33c5390783e17daf2b25d53ae919fb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c33c5390783e17daf2b25d53ae919fb"></a>
  140. size_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#a4c33c5390783e17daf2b25d53ae919fb">size</a> () const </td></tr>
  141. <tr class="memdesc:a4c33c5390783e17daf2b25d53ae919fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of local copies. <br/></td></tr>
  142. <tr class="separator:a4c33c5390783e17daf2b25d53ae919fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  143. <tr class="memitem:adfa4b2e13e47ab825dc40c4f195d2bc5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adfa4b2e13e47ab825dc40c4f195d2bc5"></a>
  144. bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#adfa4b2e13e47ab825dc40c4f195d2bc5">empty</a> () const </td></tr>
  145. <tr class="memdesc:adfa4b2e13e47ab825dc40c4f195d2bc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">true if there have been no local copies created <br/></td></tr>
  146. <tr class="separator:adfa4b2e13e47ab825dc40c4f195d2bc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  147. <tr class="memitem:a070d26debf1f65c83de13f64f91aefdc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a070d26debf1f65c83de13f64f91aefdc"></a>
  148. iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#a070d26debf1f65c83de13f64f91aefdc">begin</a> ()</td></tr>
  149. <tr class="memdesc:a070d26debf1f65c83de13f64f91aefdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">begin iterator <br/></td></tr>
  150. <tr class="separator:a070d26debf1f65c83de13f64f91aefdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  151. <tr class="memitem:ad225e2e8a968b131bf05d72f5686b924"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad225e2e8a968b131bf05d72f5686b924"></a>
  152. iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#ad225e2e8a968b131bf05d72f5686b924">end</a> ()</td></tr>
  153. <tr class="memdesc:ad225e2e8a968b131bf05d72f5686b924"><td class="mdescLeft">&#160;</td><td class="mdescRight">end iterator <br/></td></tr>
  154. <tr class="separator:ad225e2e8a968b131bf05d72f5686b924"><td class="memSeparator" colspan="2">&#160;</td></tr>
  155. <tr class="memitem:aa097383eb6f90e4a551830fc00b60b3a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa097383eb6f90e4a551830fc00b60b3a"></a>
  156. const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#aa097383eb6f90e4a551830fc00b60b3a">begin</a> () const </td></tr>
  157. <tr class="memdesc:aa097383eb6f90e4a551830fc00b60b3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">begin const iterator <br/></td></tr>
  158. <tr class="separator:aa097383eb6f90e4a551830fc00b60b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  159. <tr class="memitem:a5ed0248f10a7aa5045d2cda77dad9588"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ed0248f10a7aa5045d2cda77dad9588"></a>
  160. const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#a5ed0248f10a7aa5045d2cda77dad9588">end</a> () const </td></tr>
  161. <tr class="memdesc:a5ed0248f10a7aa5045d2cda77dad9588"><td class="mdescLeft">&#160;</td><td class="mdescRight">end const iterator <br/></td></tr>
  162. <tr class="separator:a5ed0248f10a7aa5045d2cda77dad9588"><td class="memSeparator" colspan="2">&#160;</td></tr>
  163. <tr class="memitem:ac94dd896ed78df240da4a450defbca6c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac94dd896ed78df240da4a450defbca6c"></a>
  164. range_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#ac94dd896ed78df240da4a450defbca6c">range</a> (size_t grainsize=1)</td></tr>
  165. <tr class="memdesc:ac94dd896ed78df240da4a450defbca6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get range for parallel algorithms. <br/></td></tr>
  166. <tr class="separator:ac94dd896ed78df240da4a450defbca6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  167. <tr class="memitem:a25b9153dfe994c8122a7f0227cffe793"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a25b9153dfe994c8122a7f0227cffe793"></a>
  168. const_range_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#a25b9153dfe994c8122a7f0227cffe793">range</a> (size_t grainsize=1) const </td></tr>
  169. <tr class="memdesc:a25b9153dfe994c8122a7f0227cffe793"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get const range for parallel algorithms. <br/></td></tr>
  170. <tr class="separator:a25b9153dfe994c8122a7f0227cffe793"><td class="memSeparator" colspan="2">&#160;</td></tr>
  171. <tr class="memitem:a85a0d8f088ef1ee07aeb2c0e944a4a5e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a85a0d8f088ef1ee07aeb2c0e944a4a5e"></a>
  172. void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html#a85a0d8f088ef1ee07aeb2c0e944a4a5e">clear</a> ()</td></tr>
  173. <tr class="memdesc:a85a0d8f088ef1ee07aeb2c0e944a4a5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys local copies. <br/></td></tr>
  174. <tr class="separator:a85a0d8f088ef1ee07aeb2c0e944a4a5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  175. <tr class="memitem:a4c2e2949e1b12c91c700b6394a637ac2"><td class="memTemplParams" colspan="2"><a class="anchor" id="a4c2e2949e1b12c91c700b6394a637ac2"></a>
  176. template&lt;typename U , typename Alloc , ets_key_usage_type Cachetype&gt; </td></tr>
  177. <tr class="memitem:a4c2e2949e1b12c91c700b6394a637ac2"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>enumerable_thread_specific</b> (const <a class="el" href="a00052.html">enumerable_thread_specific</a>&lt; U, Alloc, Cachetype &gt; &amp;other)</td></tr>
  178. <tr class="separator:a4c2e2949e1b12c91c700b6394a637ac2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  179. <tr class="memitem:a6b614f913497b8dc168a8e6ea03eac48"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b614f913497b8dc168a8e6ea03eac48"></a>
  180. &#160;</td><td class="memItemRight" valign="bottom"><b>enumerable_thread_specific</b> (const <a class="el" href="a00052.html">enumerable_thread_specific</a> &amp;other)</td></tr>
  181. <tr class="separator:a6b614f913497b8dc168a8e6ea03eac48"><td class="memSeparator" colspan="2">&#160;</td></tr>
  182. <tr class="memitem:a7af8784cd0d0f04b3f9f50988b8f0885"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7af8784cd0d0f04b3f9f50988b8f0885"></a>
  183. <a class="el" href="a00052.html">enumerable_thread_specific</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00052.html">enumerable_thread_specific</a> &amp;other)</td></tr>
  184. <tr class="separator:a7af8784cd0d0f04b3f9f50988b8f0885"><td class="memSeparator" colspan="2">&#160;</td></tr>
  185. <tr class="memitem:a8f5a6b7f44d0d367c7ede8dc52a0aec4"><td class="memTemplParams" colspan="2"><a class="anchor" id="a8f5a6b7f44d0d367c7ede8dc52a0aec4"></a>
  186. template&lt;typename U , typename Alloc , ets_key_usage_type Cachetype&gt; </td></tr>
  187. <tr class="memitem:a8f5a6b7f44d0d367c7ede8dc52a0aec4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00052.html">enumerable_thread_specific</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00052.html">enumerable_thread_specific</a>&lt; U, Alloc, Cachetype &gt; &amp;other)</td></tr>
  188. <tr class="separator:a8f5a6b7f44d0d367c7ede8dc52a0aec4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  189. <tr class="memitem:a7ab62b7fd2aeeb12e1a3b93c9ce99f27"><td class="memTemplParams" colspan="2"><a class="anchor" id="a7ab62b7fd2aeeb12e1a3b93c9ce99f27"></a>
  190. template&lt;typename combine_func_t &gt; </td></tr>
  191. <tr class="memitem:a7ab62b7fd2aeeb12e1a3b93c9ce99f27"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><b>combine</b> (combine_func_t f_combine)</td></tr>
  192. <tr class="separator:a7ab62b7fd2aeeb12e1a3b93c9ce99f27"><td class="memSeparator" colspan="2">&#160;</td></tr>
  193. <tr class="memitem:ae644ea36b776fdc698d87a60ef4a3179"><td class="memTemplParams" colspan="2"><a class="anchor" id="ae644ea36b776fdc698d87a60ef4a3179"></a>
  194. template&lt;typename combine_func_t &gt; </td></tr>
  195. <tr class="memitem:ae644ea36b776fdc698d87a60ef4a3179"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>combine_each</b> (combine_func_t f_combine)</td></tr>
  196. <tr class="separator:ae644ea36b776fdc698d87a60ef4a3179"><td class="memSeparator" colspan="2">&#160;</td></tr>
  197. </table><table class="memberdecls">
  198. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
  199. Friends</h2></td></tr>
  200. <tr class="memitem:a408a399f5d1ceaf6d0adc9451932a96a"><td class="memTemplParams" colspan="2"><a class="anchor" id="a408a399f5d1ceaf6d0adc9451932a96a"></a>
  201. template&lt;typename U , typename A , ets_key_usage_type C&gt; </td></tr>
  202. <tr class="memitem:a408a399f5d1ceaf6d0adc9451932a96a"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>enumerable_thread_specific</b></td></tr>
  203. <tr class="separator:a408a399f5d1ceaf6d0adc9451932a96a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  204. </table>
  205. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  206. <div class="textblock"><h3>template&lt;typename T, typename Allocator = cache_aligned_allocator&lt;T&gt;, ets_key_usage_type ETS_key_type = ets_no_key&gt;<br/>
  207. class tbb::interface6::enumerable_thread_specific&lt; T, Allocator, ETS_key_type &gt;</h3>
  208. <p>The <a class="el" href="a00052.html" title="The enumerable_thread_specific container. ">enumerable_thread_specific</a> container. </p>
  209. <pre class="fragment">enumerable_thread_specific has the following properties:
  210. - thread-local copies are lazily created, with default, exemplar or function initialization.
  211. - thread-local copies do not move (during lifetime, and excepting clear()) so the address of a copy is invariant.
  212. - the contained objects need not have operator=() defined if combine is not used.
  213. - enumerable_thread_specific containers may be copy-constructed or assigned.
  214. - thread-local copies can be managed by hash-table, or can be accessed via TLS storage for speed.
  215. - outside of parallel contexts, the contents of all thread-local copies are accessible by iterator or using combine or combine_each methods
  216. </pre><dl class="section user"><dt>Segmented iterator</dt><dd>When the thread-local objects are containers with input_iterators defined, a segmented iterator may be used to iterate over all the elements of all thread-local copies.</dd></dl>
  217. <dl class="section user"><dt>combine and combine_each</dt><dd><ul>
  218. <li>Both methods are defined for <a class="el" href="a00052.html" title="The enumerable_thread_specific container. ">enumerable_thread_specific</a>.</li>
  219. <li>combine() requires the the type T have operator=() defined.</li>
  220. <li>neither method modifies the contents of the object (though there is no guarantee that the applied methods do not modify the object.)</li>
  221. <li>Both are evaluated in serial context (the methods are assumed to be non-benign.) </li>
  222. </ul>
  223. </dd></dl>
  224. </div><hr/>The documentation for this class was generated from the following file:<ul>
  225. <li>enumerable_thread_specific.h</li>
  226. </ul>
  227. </div><!-- contents -->
  228. <hr>
  229. <p></p>
  230. Copyright &copy; 2005-2014 Intel Corporation. All Rights Reserved.
  231. <p></p>
  232. Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
  233. registered trademarks or trademarks of Intel Corporation or its
  234. subsidiaries in the United States and other countries.
  235. <p></p>
  236. * Other names and brands may be claimed as the property of others.