Author: alai04 Date: Tue Feb 24 22:16:26 2009 New Revision: 213 Added: trunk/doc/html/boost/accumulators/extract/rolling_count.html trunk/doc/html/boost/accumulators/extract/rolling_mean.html trunk/doc/html/boost/accumulators/extract/rolling_sum.html trunk/doc/html/boost/accumulators/extract/rolling_window.html trunk/doc/html/boost/accumulators/extract/rolling_window_plus1.html trunk/doc/html/boost/accumulators/impl/rolling_count_impl.html trunk/doc/html/boost/accumulators/impl/rolling_mean_impl.html trunk/doc/html/boost/accumulators/impl/rolling_sum_impl.html trunk/doc/html/boost/accumulators/impl/rolling_window_impl.html trunk/doc/html/boost/accumulators/impl/rolling_window_plus1_impl.html trunk/doc/html/boost/accumulators/tag/rolling_count.html trunk/doc/html/boost/accumulators/tag/rolling_mean.html trunk/doc/html/boost/accumulators/tag/rolling_sum.html trunk/doc/html/boost/accumulators/tag/rolling_window.html trunk/doc/html/boost/accumulators/tag/rolling_window_plus1.html trunk/libs/flyweight/ trunk/libs/flyweight/doc/ trunk/libs/flyweight/doc/acknowledgements.html trunk/libs/flyweight/doc/examples.html trunk/libs/flyweight/doc/future_work.html trunk/libs/flyweight/doc/html.png (contents, props changed) trunk/libs/flyweight/doc/index.html trunk/libs/flyweight/doc/memory.png (contents, props changed) trunk/libs/flyweight/doc/memory_gcc_344.png (contents, props changed) trunk/libs/flyweight/doc/memory_msvc_80.png (contents, props changed) trunk/libs/flyweight/doc/next.gif (contents, props changed) trunk/libs/flyweight/doc/performance.html trunk/libs/flyweight/doc/prev.gif (contents, props changed) trunk/libs/flyweight/doc/reference/ trunk/libs/flyweight/doc/reference/factories.html trunk/libs/flyweight/doc/reference/flyweight.html trunk/libs/flyweight/doc/reference/holders.html trunk/libs/flyweight/doc/reference/index.html trunk/libs/flyweight/doc/reference/key_value.html trunk/libs/flyweight/doc/reference/locking.html trunk/libs/flyweight/doc/reference/tags.html trunk/libs/flyweight/doc/reference/tracking.html trunk/libs/flyweight/doc/release_notes.html trunk/libs/flyweight/doc/style.css trunk/libs/flyweight/doc/tests.html trunk/libs/flyweight/doc/time_gcc_344.png (contents, props changed) trunk/libs/flyweight/doc/time_msvc_80.png (contents, props changed) trunk/libs/flyweight/doc/tutorial/ trunk/libs/flyweight/doc/tutorial/basics.html trunk/libs/flyweight/doc/tutorial/configuration.html trunk/libs/flyweight/doc/tutorial/extension.htmltrunk/libs/flyweight/doc/tutorial/flyweight_rep.png (contents, props changed)
trunk/libs/flyweight/doc/tutorial/index.html trunk/libs/flyweight/doc/tutorial/key_value.html trunk/libs/flyweight/doc/tutorial/lambda_expressions.html trunk/libs/flyweight/doc/tutorial/technical.html trunk/libs/flyweight/doc/up.gif (contents, props changed) trunk/libs/flyweight/index.html trunk/libs/scope_exit/ trunk/libs/scope_exit/doc/ trunk/libs/scope_exit/doc/html/ trunk/libs/scope_exit/doc/html/index.html trunk/libs/scope_exit/doc/html/scope_exit/ trunk/libs/scope_exit/doc/html/scope_exit/acknowledge.html trunk/libs/scope_exit/doc/html/scope_exit/alternatives.html trunk/libs/scope_exit/doc/html/scope_exit/compilers.html trunk/libs/scope_exit/doc/html/scope_exit/conf.html trunk/libs/scope_exit/doc/html/scope_exit/ref.html trunk/libs/scope_exit/doc/html/scope_exit/tutorial.html trunk/libs/scope_exit/index.html trunk/libs/utility/swap.html Modified: trunk/doc/html/accumulators.html trunk/doc/html/accumulators/reference.html trunk/doc/html/accumulators/user_s_guide.html trunk/doc/html/boost/accumulators/extract/skewness.htmltrunk/doc/html/boost/accumulators/feature_of_tag_weighted_pot_tail_mean_prob__LeftRight___id2579887.html
trunk/libs/libraries.htm Log: 转换至1.38.0,完成以下库: flyweight scope_exit swap accumulators any array concept_check Modified: trunk/doc/html/accumulators.html ============================================================================== --- trunk/doc/html/accumulators.html (original) +++ trunk/doc/html/accumulators.html Tue Feb 24 22:16:26 2009 @@ -89,7 +89,7 @@ </div> </div><table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr> -<td align="left"><p><small>Last revised: November 02, 2008 at 13:05:12 GMT</small></p></td> +<td align="left"><p><small>Last revised: February 07, 2009 at 16:09:37 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td> </tr></tbody></table> <hr> Modified: trunk/doc/html/accumulators/reference.html ============================================================================== --- trunk/doc/html/accumulators/reference.html (original) +++ trunk/doc/html/accumulators/reference.html Tue Feb 24 22:16:26 2009 @@ -7,8 +7,7 @@<link rel="start" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../accumulators.html" title="Chapter 1. Boost.Accumulators">
<link rel="prev" href="acknowledgements.html" title="Acknowledgements">-<link rel="next" href="../BOOST_ACCUMULATORS_MAX_FEATURES.html" title="Macro BOOST_ACCUMULATORS_MAX_FEATURES">
-</head>+<link rel="next" href="../BOOST_ACCUMULATORS_MAX_FEATURES.html" title="Macro BOOST_ACCUMULATORS_MAX_FEATURES"></head> <body style="color: black; background-color: white;" alink="#0000ff" link="#0000ff" vlink="#840084">
<table cellpadding="2" width="100%"> <tbody> @@ -318,7 +317,14 @@ <boost/accumulators/statistics/pot_quantile.hpp></a></span></dt><dt><span class="section"><a href="reference.html#header.boost.accumulators.statistics.pot_tail_mean.hpp">Header
<boost/accumulators/statistics/pot_tail_mean.hpp></a></span></dt>-<dt><span class="section"><a href="reference.html#header.boost.accumulators.statistics.skewness.hpp">Header +<dt><span class="section"><a href="reference.html#header.boost.accumulators.statistics.rolling_count_hpp">Header
+<boost/accumulators/statistics/rolling_count.hpp></a></span>+</dt><dt><span class="section"><a href="reference.html#header.boost.accumulators.statistics.rolling_mean_hpp">Header
+<boost/accumulators/statistics/rolling_mean.hpp></a></span>+</dt><dt><span class="section"><a href="reference.html#header.boost.accumulators.statistics.rolling_sum_hpp">Header
+<boost/accumulators/statistics/rolling_sum.hpp></a></span>+</dt><dt><span class="section"><a href="reference.html#header.boost.accumulators.statistics.rolling_window_hpp">Header +<boost/accumulators/statistics/rolling_window.hpp></a></span> </dt><dt><span class="section"><a href="reference.html#header.boost.accumulators.statistics.skewness.hpp">Header
<boost/accumulators/statistics/skewness.hpp></a></span></dt><dt><span class="section"><a href="reference.html#header.boost.accumulators.statistics.stats.hpp">Header
<boost/accumulators/statistics/stats.hpp></a></span></dt> @@ -592,7 +598,26 @@ <div class="titlepage"> <div> <div>-<h4 class="title"><a name="header.boost.accumulators.statistics.skewness.hpp"></a>Header
+<div class="section" lang="en"> +<div class="titlepage"> +<div> +<div>+<h4 class="title"><a name="header.boost.accumulators.statistics.rolling_count_hpp"></a>Header <<a href="../../../boost/accumulators/statistics/rolling_count.hpp" target="_top">boost/accumulators/statistics/rolling_count.hpp</a>></h4></div></div></div><pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {<br> <span class="bold"><strong>namespace</strong></span> accumulators {<br> <span class="bold"><strong>namespace</strong></span> extract {<br> <a class="link" title="Struct template extractor" href="../boost/accumulators/extractor.html">extractor</a>< <a class="link" title="Struct rolling_count" href="../boost/accumulators/tag/rolling_count.html">tag::rolling_count</a> > const <a class="link" title="Global rolling_count" href="../boost/accumulators/extract/rolling_count.html">rolling_count</a>;<br> }<br> <span class="bold"><strong>namespace</strong></span> impl {<br> <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Sample> <span class="bold"><strong>struct</strong></span> <a class="link" title="Struct template rolling_count_impl" href="../boost/accumulators/impl/rolling_count_impl.html">rolling_count_impl</a>;<br> }<br> <span class="bold"><strong>namespace</strong></span> tag {<br> <span class="bold"><strong>struct</strong></span> <a class="link" title="Struct rolling_count" href="../boost/accumulators/tag/rolling_count.html">rolling_count</a>;<br> }<br> }<br>}</pre></div>
+<div class="section" lang="en"> +<div class="titlepage"> +<div> +<div>+<h4 class="title"><a name="header.boost.accumulators.statistics.rolling_mean_hpp"></a>Header <<a href="../../../boost/accumulators/statistics/rolling_mean.hpp" target="_top">boost/accumulators/statistics/rolling_mean.hpp</a>></h4></div></div></div><pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {<br> <span class="bold"><strong>namespace</strong></span> accumulators {<br> <span class="bold"><strong>namespace</strong></span> extract {<br> <a class="link" title="Struct template extractor" href="../boost/accumulators/extractor.html">extractor</a>< <a class="link" title="Struct rolling_mean" href="../boost/accumulators/tag/rolling_mean.html">tag::rolling_mean</a> > const <a class="link" title="Global rolling_mean" href="../boost/accumulators/extract/rolling_mean.html">rolling_mean</a>;<br> }<br> <span class="bold"><strong>namespace</strong></span> impl {<br> <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Sample> <span class="bold"><strong>struct</strong></span> <a class="link" title="Struct template rolling_mean_impl" href="../boost/accumulators/impl/rolling_mean_impl.html">rolling_mean_impl</a>;<br> }<br> <span class="bold"><strong>namespace</strong></span> tag {<br> <span class="bold"><strong>struct</strong></span> <a class="link" title="Struct rolling_mean" href="../boost/accumulators/tag/rolling_mean.html">rolling_mean</a>;<br> }<br> }<br>}</pre></div>
+<div class="section" lang="en"> +<div class="titlepage"> +<div> +<div>+<h4 class="title"><a name="header.boost.accumulators.statistics.rolling_sum_hpp"></a>Header <<a href="../../../boost/accumulators/statistics/rolling_sum.hpp" target="_top">boost/accumulators/statistics/rolling_sum.hpp</a>></h4></div></div></div><pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {<br> <span class="bold"><strong>namespace</strong></span> accumulators {<br> <span class="bold"><strong>namespace</strong></span> extract {<br> <a class="link" title="Struct template extractor" href="../boost/accumulators/extractor.html">extractor</a>< <a class="link" title="Struct rolling_sum" href="../boost/accumulators/tag/rolling_sum.html">tag::rolling_sum</a> > const <a class="link" title="Global rolling_sum" href="../boost/accumulators/extract/rolling_sum.html">rolling_sum</a>;<br> }<br> <span class="bold"><strong>namespace</strong></span> impl {<br> <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Sample> <span class="bold"><strong>struct</strong></span> <a class="link" title="Struct template rolling_sum_impl" href="../boost/accumulators/impl/rolling_sum_impl.html">rolling_sum_impl</a>;<br> }<br> <span class="bold"><strong>namespace</strong></span> tag {<br> <span class="bold"><strong>struct</strong></span> <a class="link" title="Struct rolling_sum" href="../boost/accumulators/tag/rolling_sum.html">rolling_sum</a>;<br> }<br> }<br>}</pre></div>
+<div class="section" lang="en"> +<div class="titlepage"> +<div> +<div>+<h4 class="title"><a name="header.boost.accumulators.statistics.rolling_window_hpp"></a>Header <<a href="../../../boost/accumulators/statistics/rolling_window.hpp" target="_top">boost/accumulators/statistics/rolling_window.hpp</a>></h4></div></div></div><pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {<br> <span class="bold"><strong>namespace</strong></span> accumulators {<br> <span class="bold"><strong>namespace</strong></span> extract {<br> <a class="link" title="Struct template extractor" href="../boost/accumulators/extractor.html">extractor</a>< <a class="link" title="Struct rolling_window_plus1" href="../boost/accumulators/tag/rolling_window_plus1.html">tag::rolling_window_plus1</a> > const <a class="link" title="Global rolling_window_plus1" href="../boost/accumulators/extract/rolling_window_plus1.html">rolling_window_plus1</a>;<br> <a class="link" title="Struct template extractor" href="../boost/accumulators/extractor.html">extractor</a>< <a class="link" title="Struct rolling_window" href="../boost/accumulators/tag/rolling_window.html">tag::rolling_window</a> > const <a class="link" title="Global rolling_window" href="../boost/accumulators/extract/rolling_window.html">rolling_window</a>;<br> }<br> <span class="bold"><strong>namespace</strong></span> impl {<br> <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Sample> <span class="bold"><strong>struct</strong></span> <a class="link" title="Struct template rolling_window_plus1_impl" href="../boost/accumulators/impl/rolling_window_plus1_impl.html">rolling_window_plus1_impl</a>;<br> <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Sample> <span class="bold"><strong>struct</strong></span> <a class="link" title="Struct template rolling_window_impl" href="../boost/accumulators/impl/rolling_window_impl.html">rolling_window_impl</a>;<br> <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <br> <span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="boost.accumulators.impl.is_rolling_window_plus1_id2963048"></a>is_rolling_window_plus1_full(Args <span class="bold"><strong>const</strong></span> & args);<br> }<br> <span class="bold"><strong>namespace</strong></span> tag {<br> <span class="bold"><strong>struct</strong></span> <a class="link" title="Struct rolling_window_plus1" href="../boost/accumulators/tag/rolling_window_plus1.html">rolling_window_plus1</a>;<br> <span class="bold"><strong>struct</strong></span> <a class="link" title="Struct rolling_window" href="../boost/accumulators/tag/rolling_window.html">rolling_window</a>;<br> }<br> }<br>}</pre></div><h4 class="title"><a name="header.boost.accumulators.statistics.skewness.hpp"></a>Header <<a href="../../../boost/accumulators/statistics/skewness.hpp" target="_top">boost/accumulators/statistics/skewness.hpp</a>></h4>
</div> </div> Modified: trunk/doc/html/accumulators/user_s_guide.html ============================================================================== --- trunk/doc/html/accumulators/user_s_guide.html (original) +++ trunk/doc/html/accumulators/user_s_guide.html Tue Feb 24 22:16:26 2009 @@ -1655,7 +1655,12 @@pot_quantile <span class="emphasis"><em>及其变体 </em></span></a></span></dt> <dt><span class="section"><a href="user_s_guide.html#accumulators.user_s_guide.the_statistical_accumulators_library.pot_tail_mean">
pot_tail_mean</a></span></dt>-<dt><span class="section"><a href="user_s_guide.html#accumulators.user_s_guide.the_statistical_accumulators_library.skewness"> +<dt><span class="section"><a href="user_s_guide.html#accumulators.user_s_guide.the_statistical_accumulators_library.rolling_count">rolling_count</a></span>
++</dt><dt><span class="section"><a href="user_s_guide.html#accumulators.user_s_guide.the_statistical_accumulators_library.rolling_sum">rolling_sum</a></span>
++</dt><dt><span class="section"><a href="user_s_guide.html#accumulators.user_s_guide.the_statistical_accumulators_library.rolling_mean">rolling_mean</a></span> +</dt><dt><span class="section"><a href="user_s_guide.html#accumulators.user_s_guide.the_statistical_accumulators_library.skewness">
skewness</a></span></dt><dt><span class="section"><a href="user_s_guide.html#accumulators.user_s_guide.the_statistical_accumulators_library.sum">
sum <span class="emphasis"><em>及其变体</em></span></a></span></dt> @@ -3283,8 +3288,135 @@ </ul></div> </div> <div class="section" lang="en"> -<div class="titlepage"><div><div><h4 class="title">-<a name="accumulators.user_s_guide.the_statistical_accumulators_library.skewness"></a><a class="link" href="user_s_guide.html#accumulators.user_s_guide.the_statistical_accumulators_library.skewness" title="skewness">
+<div class="titlepage"><div><div><div class="section" lang="en"> +<div class="titlepage"> +<div> +<div>+<h4 class="title"><a name="accumulators.user_s_guide.the_statistical_accumulators_library.rolling_count"></a><a class="link" title="rolling_count" href="user_s_guide.html#accumulators.user_s_guide.the_statistical_accumulators_library.rolling_count">rolling_count</a>
+</h4></div></div></div>+<p>The rolling count is the current number of elements in the rolling window.<br>滚动数量 rolling count 为滚动窗口中当前的元素数量。
+</p> +<div class="variablelist"> +<p class="title"></p> +<dl><dt><span class="term">Result Type 返回类型</span> +</dt><dd>+<p></p><pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></pre>
+<p></p> +</dd><dt><span class="term">Depends On 依赖于</span> +</dt><dd>+<p><code class="computeroutput"><span class="identifier">rolling_window_plus1</span></code> </p>
+</dd><dt><span class="term">Variants 变体</span> +</dt><dd> +<p><span class="emphasis"><em>none</em></span> </p> +</dd><dt><span class="term">Initialization Parameters 初始化参数</span> +</dt><dd>+<p><code class="computeroutput"><span class="identifier">tag</span><span class="special">::</span><span class="identifier">rolling_window</span><span class="special">::</span><span class="identifier">window_size</span></code> </p>
+</dd><dt><span class="term">Accumulator Parameters 累加器参数</span> +</dt><dd> +<p><span class="emphasis"><em>none</em></span> </p> +</dd><dt><span class="term">Extractor Parameters 提取器参数</span> +</dt><dd> +<p><span class="emphasis"><em>none</em></span> </p> +</dd><dt><span class="term">Accumulator Complexity 累加器复杂度</span> +</dt><dd> +<p>O(1) </p> +</dd><dt><span class="term">Extractor Complexity 提取器复杂度</span> +</dt><dd> +<p>O(1) </p></dd></dl></div>+<p><span class="bold"><strong>Header 头文件</strong></span> </p><pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><code class="computeroutput"><a class="link" title="Header <boost/accumulators/statistics/rolling_count.hpp>" href="reference.html#header.boost.accumulators.statistics.rolling_count_hpp">boost/accumulators/statistics/rolling_count.hpp</a></code><span class="special">></span>
+</pre>+<p><span class="bold"><strong>Example 例子</strong></span> </p><pre class="programlisting"><span class="identifier">accumulator_set</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">stats</span><span class="special"><</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">rolling_count</span><span class="special">></span> <span class="special">></span> <span class="identifier">acc</span><span class="special">(</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">rolling_window</span><span class="special">::</span><span class="identifier">window_size</span> <span class="special">=</span> <span class="number">3</span><span class="special">);</span><br><br><span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span><span class="number">0u</span><span class="special">,</span> <span class="identifier">rolling_count</span><span class="special">(</span><span class="identifier">acc</span><span class="special">));</span><br><br><span class="identifier">acc</span><span class="special">(</span><span class="number">1</span><span class="special">);</span><br><span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span><span class="number">1u</span><span class="special">,</span> <span class="identifier">rolling_count</span><span class="special">(</span><span class="identifier">acc</span><span class="special">));</span><br><br><span class="identifier">acc</span><span class="special">(</span><span class="number">1</span><span class="special">);</span><br><span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span><span class="number">2u</span><span class="special">,</span> <span class="identifier">rolling_count</span><span class="special">(</span><span class="identifier">acc</span><span class="special">));</span><br><br><span class="identifier">acc</span><span class="special">(</span><span class="number">1</span><span class="special">);</span><br><span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span><span class="number">3u</span><span class="special">,</span> <span class="identifier">rolling_count</span><span class="special">(</span><span class="identifier">acc</span><span class="special">));</span><br><br><span class="identifier">acc</span><span class="special">(</span><span class="number">1</span><span class="special">);</span><br><span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span><span class="number">3u</span><span class="special">,</span> <span class="identifier">rolling_count</span><span class="special">(</span><span class="identifier">acc</span><span class="special">));</span><br><br><span class="identifier">acc</span><span class="special">(</span><span class="number">1</span><span class="special">);</span><br><span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span><span class="number">3u</span><span class="special">,</span> <span class="identifier">rolling_count</span><span class="special">(</span><span class="identifier">acc</span><span class="special">));</span>
+</pre> +<p><span class="bold"><strong>See also 参见</strong></span> </p> +<div class="itemizedlist">+<ul type="disc"><li><code class="computeroutput"><a class="link" title="Struct template rolling_count_impl" href="../boost/accumulators/impl/rolling_count_impl.html">rolling_count_impl</a></code></li></ul></div></div>
+<div class="section" lang="en"> +<div class="titlepage"> +<div> +<div>+<h4 class="title"><a name="accumulators.user_s_guide.the_statistical_accumulators_library.rolling_sum"></a><a class="link" title="rolling_sum" href="user_s_guide.html#accumulators.user_s_guide.the_statistical_accumulators_library.rolling_sum">rolling_sum</a>
+</h4></div></div></div>+<p>The rolling sum is the sum of the last <span class="emphasis"><em>N</em></span> +samples.<br>滚动和 rolling sum 为最后 <span class="emphasis"><em>N</em></span>
+个样本的总和。 </p> +<div class="variablelist"> +<p class="title"></p> +<dl><dt><span class="term">Result Type 返回类型</span> +</dt><dd>+<p></p><pre class="programlisting"><em class="replaceable"><code>sample-type</code></em></pre>
+<p></p> +</dd><dt><span class="term">Depends On 依赖于</span> +</dt><dd>+<p><code class="computeroutput"><span class="identifier">rolling_window_plus1</span></code> </p>
+</dd><dt><span class="term">Variants 变体</span> +</dt><dd> +<p><span class="emphasis"><em>none</em></span> </p> +</dd><dt><span class="term">Initialization Parameters 初始化参数</span> +</dt><dd>+<p><code class="computeroutput"><span class="identifier">tag</span><span class="special">::</span><span class="identifier">rolling_window</span><span class="special">::</span><span class="identifier">window_size</span></code> </p>
+</dd><dt><span class="term">Accumulator Parameters 累加器参数</span> +</dt><dd> +<p><span class="emphasis"><em>none</em></span> </p> +</dd><dt><span class="term">Extractor Parameters 提取器参数</span> +</dt><dd> +<p><span class="emphasis"><em>none</em></span> </p> +</dd><dt><span class="term">Accumulator Complexity 累加器复杂度</span> +</dt><dd> +<p>O(1) </p> +</dd><dt><span class="term">Extractor Complexity 提取器复杂度</span> +</dt><dd> +<p>O(1) </p></dd></dl></div>+<p><span class="bold"><strong>Header 头文件</strong></span> </p><pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><code class="computeroutput"><a class="link" title="Header <boost/accumulators/statistics/rolling_sum.hpp>" href="reference.html#header.boost.accumulators.statistics.rolling_sum_hpp">boost/accumulators/statistics/rolling_sum.hpp</a></code><span class="special">></span>
+</pre>+<p><span class="bold"><strong>Example 例子</strong></span> </p><pre class="programlisting"><span class="identifier">accumulator_set</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">stats</span><span class="special"><</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">rolling_sum</span><span class="special">></span> <span class="special">></span> <span class="identifier">acc</span><span class="special">(</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">rolling_window</span><span class="special">::</span><span class="identifier">window_size</span> <span class="special">=</span> <span class="number">3</span><span class="special">);</span><br><br><span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="identifier">rolling_sum</span><span class="special">(</span><span class="identifier">acc</span><span class="special">));</span><br><br><span class="identifier">acc</span><span class="special">(</span><span class="number">1</span><span class="special">);</span><br><span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">rolling_sum</span><span class="special">(</span><span class="identifier">acc</span><span class="special">));</span><br><br><span class="identifier">acc</span><span class="special">(</span><span class="number">2</span><span class="special">);</span><br><span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span><span class="number">3</span><span class="special">,</span> <span class="identifier">rolling_sum</span><span class="special">(</span><span class="identifier">acc</span><span class="special">));</span><br><br><span class="identifier">acc</span><span class="special">(</span><span class="number">3</span><span class="special">);</span><br><span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span><span class="number">6</span><span class="special">,</span> <span class="identifier">rolling_sum</span><span class="special">(</span><span class="identifier">acc</span><span class="special">));</span><br><br><span class="identifier">acc</span><span class="special">(</span><span class="number">4</span><span class="special">);</span><br><span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span><span class="number">9</span><span class="special">,</span> <span class="identifier">rolling_sum</span><span class="special">(</span><span class="identifier">acc</span><span class="special">));</span><br><br><span class="identifier">acc</span><span class="special">(</span><span class="number">5</span><span class="special">);</span><br><span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span><span class="number">12</span><span class="special">,</span> <span class="identifier">rolling_sum</span><span class="special">(</span><span class="identifier">acc</span><span class="special">));</span>
+</pre> +<p><span class="bold"><strong>See also 参见</strong></span> </p> +<div class="itemizedlist">+<ul type="disc"><li><code class="computeroutput"><a class="link" title="Struct template rolling_sum_impl" href="../boost/accumulators/impl/rolling_sum_impl.html">rolling_sum_impl</a></code></li></ul></div></div>
+<div class="section" lang="en"> +<div class="titlepage"> +<div> +<div>+<h4 class="title"><a name="accumulators.user_s_guide.the_statistical_accumulators_library.rolling_mean"></a><a class="link" title="rolling_mean" href="user_s_guide.html#accumulators.user_s_guide.the_statistical_accumulators_library.rolling_mean">rolling_mean</a>
+</h4></div></div></div>+<p>The rolling mean is the mean over the last <span class="emphasis"><em>N</em></span> samples. It is computed by dividing the rolling +sum by the rolling count.<br>滚动均值 rolling mean 为最后 <span class="emphasis"><em>N</em></span> 个样本的平均值。通过将滚动和除以滚动数量 计算得到。 </p>
+<div class="variablelist"> +<p class="title"></p> +<dl><dt><span class="term">Result Type 返回类型</span> +</dt><dd>+<p></p><pre class="programlisting"><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">functional</span><span class="special">::</span><span class="identifier">average</span><span class="special"><</span><em class="replaceable"><code>sample-type</code></em><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">>::</span><span class="identifier">result_type</span>
+</pre> +<p></p> +</dd><dt><span class="term">Depends On 依赖于</span> +</dt><dd>+<p><code class="computeroutput"><span class="identifier">rolling_sum</span></code> +<br><code class="computeroutput"><span class="identifier">rolling_count</span></code> </p>
+</dd><dt><span class="term">Variants 变体</span> +</dt><dd> +<p><span class="emphasis"><em>none</em></span> </p> +</dd><dt><span class="term">Initialization Parameters 初始化参数</span> +</dt><dd>+<p><code class="computeroutput"><span class="identifier">tag</span><span class="special">::</span><span class="identifier">rolling_window</span><span class="special">::</span><span class="identifier">window_size</span></code> </p>
+</dd><dt><span class="term">Accumulator Parameters 累加器参数</span> +</dt><dd> +<p><span class="emphasis"><em>none</em></span> </p> +</dd><dt><span class="term">Extractor Parameters 提取器参数</span> +</dt><dd> +<p><span class="emphasis"><em>none</em></span> </p> +</dd><dt><span class="term">Accumulator Complexity 累加器复杂度</span> +</dt><dd> +<p>O(1) </p> +</dd><dt><span class="term">Extractor Complexity 提取器复杂度</span> +</dt><dd> +<p>O(1) </p></dd></dl></div>+<p><span class="bold"><strong>Header 头文件</strong></span> </p><pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><code class="computeroutput"><a class="link" title="Header <boost/accumulators/statistics/rolling_mean.hpp>" href="reference.html#header.boost.accumulators.statistics.rolling_mean_hpp">boost/accumulators/statistics/rolling_mean.hpp</a></code><span class="special">></span>
+</pre>+<p><span class="bold"><strong>Example 例子</strong></span> </p><pre class="programlisting"><span class="identifier">accumulator_set</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">stats</span><span class="special"><</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">rolling_mean</span><span class="special">></span> <span class="special">></span> <span class="identifier">acc</span><span class="special">(</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">rolling_window</span><span class="special">::</span><span class="identifier">window_size</span> <span class="special">=</span> <span class="number">5</span><span class="special">);</span><br><br><span class="identifier">acc</span><span class="special">(</span><span class="number">1</span><span class="special">);</span><br><span class="identifier">acc</span><span class="special">(</span><span class="number">2</span><span class="special">);</span><br><span class="identifier">acc</span><span class="special">(</span><span class="number">3</span><span class="special">);</span><br><br><span class="identifier">BOOST_CHECK_CLOSE</span><span class="special">(</span> <span class="identifier">rolling_mean</span><span class="special">(</span><span class="identifier">acc</span><span class="special">),</span> <span class="number">2.0</span><span class="special">,</span> <span class="number">1e-6</span> <span class="special">);</span><br><br><span class="identifier">acc</span><span class="special">(</span><span class="number">4</span><span class="special">);</span><br><span class="identifier">acc</span><span class="special">(</span><span class="number">5</span><span class="special">);</span><br><span class="identifier">acc</span><span class="special">(</span><span class="number">6</span><span class="special">);</span><br><span class="identifier">acc</span><span class="special">(</span><span class="number">7</span><span class="special">);</span><br><br><span class="identifier">BOOST_CHECK_CLOSE</span><span class="special">(</span> <span class="identifier">rolling_mean</span><span class="special">(</span><span class="identifier">acc</span><span class="special">),</span> <span class="number">5.0</span><span class="special">,</span> <span class="number">1e-6</span> <span class="special">);</span>
+</pre> +<p><span class="bold"><strong>See also 参见</strong></span> </p> +<div class="itemizedlist">+<ul type="disc"><li><code class="computeroutput"><a class="link" title="Struct template rolling_mean_impl" href="../boost/accumulators/impl/rolling_mean_impl.html">rolling_mean_impl</a></code></li></ul></div></div><h4 class="title"><a name="accumulators.user_s_guide.the_statistical_accumulators_library.skewness"></a><a class="link" href="user_s_guide.html#accumulators.user_s_guide.the_statistical_accumulators_library.skewness" title="skewness">
skewness</a> </h4></div></div></div> <p> Added: trunk/doc/html/boost/accumulators/extract/rolling_count.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/extract/rolling_count.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,45 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ++<title>Global rolling_count</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_count_hpp" title="Header <boost/accumulators/statistics/rolling_count.hpp>"> +<link rel="prev" href="../feature_of_tag_weighted_id2962250.html" title="Struct template feature_of<tag::weighted_pot_tail_mean_prob< LeftRight >>"> +<link rel="next" href="../impl/rolling_count_impl.html" title="Struct template rolling_count_impl"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../feature_of_tag_weighted_pot_tail_mean_prob__LeftRight___id2579887.html"><img style="border: 0px solid ; width: 19px; height: 19px;" src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_count_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../impl/rolling_count_impl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.extract.rolling_count"></a><div class="titlepage"></div>
+<div class="refnamediv"> +<h2><span class="refentrytitle">Global rolling_count</span></h2> +<p>boost::accumulators::extract::rolling_count</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_count_hpp" title="Header <boost/accumulators/statistics/rolling_count.hpp>">boost/accumulators/statistics/rolling_count.hpp</a>><br><br></em></span><a class="link" href="../extractor.html" title="Struct template extractor">extractor</a>< <a class="link" href="../tag/rolling_count.html" title="Struct rolling_count">tag::rolling_count</a> > const rolling_count;</pre></div>
+</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright (c) 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../feature_of_tag_weighted_pot_tail_mean_prob__LeftRight___id2579887.html"><img style="border: 0px solid ; width: 19px; height: 19px;" src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_count_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../impl/rolling_count_impl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Added: trunk/doc/html/boost/accumulators/extract/rolling_mean.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/extract/rolling_mean.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,45 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ++<title>Global rolling_mean</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_mean_hpp" title="Header <boost/accumulators/statistics/rolling_mean.hpp>"> +<link rel="prev" href="../tag/rolling_count.html" title="Struct rolling_count"> +<link rel="next" href="../impl/rolling_mean_impl.html" title="Struct template rolling_mean_impl"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../tag/rolling_count.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_mean_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../impl/rolling_mean_impl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.extract.rolling_mean"></a><div class="titlepage"></div>
+<div class="refnamediv"> +<h2><span class="refentrytitle">Global rolling_mean</span></h2> +<p>boost::accumulators::extract::rolling_mean</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_mean_hpp" title="Header <boost/accumulators/statistics/rolling_mean.hpp>">boost/accumulators/statistics/rolling_mean.hpp</a>><br><br></em></span><a class="link" href="../extractor.html" title="Struct template extractor">extractor</a>< <a class="link" href="../tag/rolling_mean.html" title="Struct rolling_mean">tag::rolling_mean</a> > const rolling_mean;</pre></div>
+</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright (c) 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../tag/rolling_count.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_mean_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../impl/rolling_mean_impl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Added: trunk/doc/html/boost/accumulators/extract/rolling_sum.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/extract/rolling_sum.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,45 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ++<title>Global rolling_sum</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_sum_hpp" title="Header <boost/accumulators/statistics/rolling_sum.hpp>"> +<link rel="prev" href="../tag/rolling_mean.html" title="Struct rolling_mean"> +<link rel="next" href="../impl/rolling_sum_impl.html" title="Struct template rolling_sum_impl"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../tag/rolling_mean.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_sum_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../impl/rolling_sum_impl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.extract.rolling_sum"></a><div class="titlepage"></div>
+<div class="refnamediv"> +<h2><span class="refentrytitle">Global rolling_sum</span></h2> +<p>boost::accumulators::extract::rolling_sum</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_sum_hpp" title="Header <boost/accumulators/statistics/rolling_sum.hpp>">boost/accumulators/statistics/rolling_sum.hpp</a>><br><br></em></span><a class="link" href="../extractor.html" title="Struct template extractor">extractor</a>< <a class="link" href="../tag/rolling_sum.html" title="Struct rolling_sum">tag::rolling_sum</a> > const rolling_sum;</pre></div>
+</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright (c) 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../tag/rolling_mean.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_sum_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../impl/rolling_sum_impl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Added: trunk/doc/html/boost/accumulators/extract/rolling_window.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/extract/rolling_window.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,45 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ++<title>Global rolling_window</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp" title="Header <boost/accumulators/statistics/rolling_window.hpp>"> +<link rel="prev" href="rolling_window_plus1.html" title="Global rolling_window_plus1"> +<link rel="next" href="../impl/rolling_window_plus1_impl.html" title="Struct template rolling_window_plus1_impl"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="rolling_window_plus1.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../impl/rolling_window_plus1_impl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.extract.rolling_window"></a><div class="titlepage"></div>
+<div class="refnamediv"> +<h2><span class="refentrytitle">Global rolling_window</span></h2> +<p>boost::accumulators::extract::rolling_window</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp" title="Header <boost/accumulators/statistics/rolling_window.hpp>">boost/accumulators/statistics/rolling_window.hpp</a>><br><br></em></span><a class="link" href="../extractor.html" title="Struct template extractor">extractor</a>< <a class="link" href="../tag/rolling_window.html" title="Struct rolling_window">tag::rolling_window</a> > const rolling_window;</pre></div>
+</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright (c) 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="rolling_window_plus1.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../impl/rolling_window_plus1_impl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Added: trunk/doc/html/boost/accumulators/extract/rolling_window_plus1.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/extract/rolling_window_plus1.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,45 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ++<title>Global rolling_window_plus1</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp" title="Header <boost/accumulators/statistics/rolling_window.hpp>">
+<link rel="prev" href="../tag/rolling_sum.html" title="Struct rolling_sum">+<link rel="next" href="rolling_window.html" title="Global rolling_window"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../tag/rolling_sum.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rolling_window.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.extract.rolling_window_plus1"></a><div class="titlepage"></div>
+<div class="refnamediv"> +<h2><span class="refentrytitle">Global rolling_window_plus1</span></h2> +<p>boost::accumulators::extract::rolling_window_plus1</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp" title="Header <boost/accumulators/statistics/rolling_window.hpp>">boost/accumulators/statistics/rolling_window.hpp</a>><br><br></em></span><a class="link" href="../extractor.html" title="Struct template extractor">extractor</a>< <a class="link" href="../tag/rolling_window_plus1.html" title="Struct rolling_window_plus1">tag::rolling_window_plus1</a> > const rolling_window_plus1;</pre></div>
+</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright (c) 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../tag/rolling_sum.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rolling_window.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Modified: trunk/doc/html/boost/accumulators/extract/skewness.html ============================================================================== --- trunk/doc/html/boost/accumulators/extract/skewness.html (original)+++ trunk/doc/html/boost/accumulators/extract/skewness.html Tue Feb 24 22:16:26 2009
@@ -19,7 +19,7 @@ </tr></tbody></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="../feature_of_tag_weighted_pot_tail_mean_prob__LeftRight___id2579887.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.skewness.hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../impl/skewness_impl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="../tag/rolling_window.html"><img style="border: 0px solid ; width: 19px; height: 19px;" src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.skewness.hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../impl/skewness_impl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div> <div class="refentry" lang="en"><a name="boost.accumulators.extract.skewness"></a><div class="titlepage"></div>
@@ -40,6 +40,6 @@ </tr></tbody></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="../feature_of_tag_weighted_pot_tail_mean_prob__LeftRight___id2579887.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.skewness.hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../impl/skewness_impl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="../tag/rolling_window.html"><img style="border: 0px solid ; width: 19px; height: 19px;" src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.skewness.hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../impl/skewness_impl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div> </body></html>Modified: trunk/doc/html/boost/accumulators/feature_of_tag_weighted_pot_tail_mean_prob__LeftRight___id2579887.html
==============================================================================--- trunk/doc/html/boost/accumulators/feature_of_tag_weighted_pot_tail_mean_prob__LeftRight___id2579887.html (original) +++ trunk/doc/html/boost/accumulators/feature_of_tag_weighted_pot_tail_mean_prob__LeftRight___id2579887.html Tue Feb 24 22:16:26 2009
@@ -19,7 +19,7 @@ </tr></tbody></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="as_weighted_feature_tag_pot_tail_mean_prob__LeftRight___id2579864.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../accumulators/reference.html#header.boost.accumulators.statistics.pot_tail_mean.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="extract/skewness.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="as_weighted_feature_tag_pot_tail_mean_prob__LeftRight___id2579864.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../accumulators/reference.html#header.boost.accumulators.statistics.pot_tail_mean.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="extract/rolling_count.html"><img style="border: 0px solid ; width: 19px; height: 19px;" src="../../../../doc/html/images/next.png" alt="Next"></a>
</div> <div class="refentry" lang="en"><a name="boost.accumulators.feature_of<tag::weighted_pot_tail_mean_prob<_LeftRight_>>_id2579887"></a><div class="titlepage"></div>
@@ -40,6 +40,6 @@ </tr></tbody></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="as_weighted_feature_tag_pot_tail_mean_prob__LeftRight___id2579864.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../accumulators/reference.html#header.boost.accumulators.statistics.pot_tail_mean.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="extract/skewness.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="as_weighted_feature_tag_pot_tail_mean_prob__LeftRight___id2579864.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../accumulators/reference.html#header.boost.accumulators.statistics.pot_tail_mean.hpp"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="extract/rolling_count.html"><img style="border: 0px solid ; width: 19px; height: 19px;" src="../../../../doc/html/images/next.png" alt="Next"></a>
</div> </body></html> Added: trunk/doc/html/boost/accumulators/impl/rolling_count_impl.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/impl/rolling_count_impl.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,63 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ++<title>Struct template rolling_count_impl</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_count_hpp" title="Header <boost/accumulators/statistics/rolling_count.hpp>"> +<link rel="prev" href="../extract/rolling_count.html" title="Global rolling_count"> +<link rel="next" href="../tag/rolling_count.html" title="Struct rolling_count"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../extract/rolling_count.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_count_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../tag/rolling_count.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.impl.rolling_count_impl"></a><div class="titlepage"></div>
+<div class="refnamediv">+<h2><span class="refentrytitle">Struct template rolling_count_impl</span></h2>
+<p>boost::accumulators::impl::rolling_count_impl</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_count_hpp" title="Header <boost/accumulators/statistics/rolling_count.hpp>">boost/accumulators/statistics/rolling_count.hpp</a>><br><br></em></span><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Sample> <br><span class="bold"><strong>struct</strong></span> <a class="link" href="rolling_count_impl.html" title="Struct template rolling_count_impl">rolling_count_impl</a> {<br> <span class="emphasis"><em>// types</em></span> + <span class="bold"><strong>typedef</strong></span> std::size_t <a name="boost.accumulators.impl.rolling_count_impl.result_type"></a>result_type;<br><br> <span class="emphasis"><em>// <a class="link" href="rolling_count_impl.html#boost.accumulators.impl.rolling_count_implconstruct-copy-destruct">construct/copy/destruct</a></em></span> + <a class="link" href="rolling_count_impl.html#id2962585-bb">rolling_count_impl</a>(dont_care);<br><br> <span class="emphasis"><em>// <a class="link" href="rolling_count_impl.html#id2962560-bb">public member functions</a></em></span> + <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <span class="type">result_type</span> <a class="link" href="rolling_count_impl.html#id2962564-bb">result</a>(Args <span class="bold"><strong>const</strong></span> &) <span class="bold"><strong>const</strong></span>;<br>};</pre></div>
+<div class="refsect1" lang="en"> +<a name="id2971162"></a><h2>Description 说明</h2> +<div class="refsect2" lang="en"> +<a name="id2971165"></a><h3>+<a name="boost.accumulators.impl.rolling_count_implconstruct-copy-destruct"></a><code class="computeroutput">rolling_count_impl</code>
+ public + construct/copy/destruct 公有构造/复杂/析构</h3>+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id2962585-bb"></a>rolling_count_impl(dont_care);</pre></li></ol></div>
+</div> +<div class="refsect2" lang="en"> +<a name="id2971200"></a><h3>+<a name="id2962560-bb"></a><code class="computeroutput">rolling_count_impl</code> public member functions 公 有成员函数</h3> +<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <span class="type">result_type</span> <a name="id2962564-bb"></a>result(Args <span class="bold"><strong>const</strong></span> & args) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div> +</div> +</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright (c) 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../extract/rolling_count.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_count_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../tag/rolling_count.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Added: trunk/doc/html/boost/accumulators/impl/rolling_mean_impl.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/impl/rolling_mean_impl.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,63 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ++<title>Struct template rolling_mean_impl</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_mean_hpp" title="Header <boost/accumulators/statistics/rolling_mean.hpp>"> +<link rel="prev" href="../extract/rolling_mean.html" title="Global rolling_mean"> +<link rel="next" href="../tag/rolling_mean.html" title="Struct rolling_mean"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../extract/rolling_mean.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_mean_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../tag/rolling_mean.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.impl.rolling_mean_impl"></a><div class="titlepage"></div>
+<div class="refnamediv">+<h2><span class="refentrytitle">Struct template rolling_mean_impl</span></h2>
+<p>boost::accumulators::impl::rolling_mean_impl</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_mean_hpp" title="Header <boost/accumulators/statistics/rolling_mean.hpp>">boost/accumulators/statistics/rolling_mean.hpp</a>><br><br></em></span><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Sample> <br><span class="bold"><strong>struct</strong></span> <a class="link" href="rolling_mean_impl.html" title="Struct template rolling_mean_impl">rolling_mean_impl</a> {<br> <span class="emphasis"><em>// types</em></span> + <span class="bold"><strong>typedef</strong></span> numeric::functional::average< Sample, std::size_t >::result_type <a name="boost.accumulators.impl.rolling_mean_impl.result_type"></a>result_type;<br><br> <span class="emphasis"><em>// <a class="link" href="rolling_mean_impl.html#boost.accumulators.impl.rolling_mean_implconstruct-copy-destruct">construct/copy/destruct</a></em></span> + <a class="link" href="rolling_mean_impl.html#id2962687-bb">rolling_mean_impl</a>(dont_care);<br><br> <span class="emphasis"><em>// <a class="link" href="rolling_mean_impl.html#id2962663-bb">public member functions</a></em></span> + <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <span class="type">result_type</span> <a class="link" href="rolling_mean_impl.html#id2962666-bb">result</a>(Args <span class="bold"><strong>const</strong></span> &) <span class="bold"><strong>const</strong></span>;<br>};</pre></div>
+<div class="refsect1" lang="en"> +<a name="id2971648"></a><h2>Description 说明</h2> +<div class="refsect2" lang="en"> +<a name="id2971652"></a><h3>+<a name="boost.accumulators.impl.rolling_mean_implconstruct-copy-destruct"></a><code class="computeroutput">rolling_mean_impl</code>
+ public+ construct/copy/destruct 公有构造/复杂/析构</h3> +<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id2962687-bb"></a>rolling_mean_impl(dont_care);</pre></li></ol></div>
+</div> +<div class="refsect2" lang="en"> +<a name="id2971687"></a><h3>+<a name="id2962663-bb"></a><code class="computeroutput">rolling_mean_impl</code> public member functions 公有成员函数</h3> +<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <span class="type">result_type</span> <a name="id2962666-bb"></a>result(Args <span class="bold"><strong>const</strong></span> & args) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div> +</div> +</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../extract/rolling_mean.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_mean_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../tag/rolling_mean.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Added: trunk/doc/html/boost/accumulators/impl/rolling_sum_impl.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/impl/rolling_sum_impl.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,66 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ++<title>Struct template rolling_sum_impl</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_sum_hpp" title="Header <boost/accumulators/statistics/rolling_sum.hpp>"> +<link rel="prev" href="../extract/rolling_sum.html" title="Global rolling_sum"> +<link rel="next" href="../tag/rolling_sum.html" title="Struct rolling_sum"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../extract/rolling_sum.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_sum_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../tag/rolling_sum.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.impl.rolling_sum_impl"></a><div class="titlepage"></div>
+<div class="refnamediv">+<h2><span class="refentrytitle">Struct template rolling_sum_impl</span></h2>
+<p>boost::accumulators::impl::rolling_sum_impl</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_sum_hpp" title="Header <boost/accumulators/statistics/rolling_sum.hpp>">boost/accumulators/statistics/rolling_sum.hpp</a>><br><br></em></span><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Sample> <br><span class="bold"><strong>struct</strong></span> <a class="link" href="rolling_sum_impl.html" title="Struct template rolling_sum_impl">rolling_sum_impl</a> {<br> <span class="emphasis"><em>// types</em></span> + <span class="bold"><strong>typedef</strong></span> Sample <a name="boost.accumulators.impl.rolling_sum_impl.result_type"></a>result_type;<br><br> <span class="emphasis"><em>// <a class="link" href="rolling_sum_impl.html#boost.accumulators.impl.rolling_sum_implconstruct-copy-destruct">construct/copy/destruct</a></em></span> + <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <a class="link" href="rolling_sum_impl.html#id2962810-bb">rolling_sum_impl</a>(Args <span class="bold"><strong>const</strong></span> &);<br><br> <span class="emphasis"><em>// <a class="link" href="rolling_sum_impl.html#id2962765-bb">public member functions</a></em></span> + <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <span class="type"><span class="bold"><strong>void</strong></span></span> <a class="link" href="rolling_sum_impl.html#id2962768-bb"><span class="bold"><strong>operator</strong></span>()</a>(Args <span class="bold"><strong>const</strong></span> &) ;<br> <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <span class="type">result_type</span> <a class="link" href="rolling_sum_impl.html#id2962789-bb">result</a>(Args <span class="bold"><strong>const</strong></span> &) <span class="bold"><strong>const</strong></span>;<br>};</pre></div>
+<div class="refsect1" lang="en"> +<a name="id2972190"></a><h2>Description 说明</h2> +<div class="refsect2" lang="en"> +<a name="id2972193"></a><h3>+<a name="boost.accumulators.impl.rolling_sum_implconstruct-copy-destruct"></a><code class="computeroutput">rolling_sum_impl</code>
+ public + construct/copy/destruct 公有构造/复制/析构</h3>+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <a name="id2962810-bb"></a>rolling_sum_impl(Args <span class="bold"><strong>const</strong></span> & args);</pre></li></ol></div>
+</div> +<div class="refsect2" lang="en"> +<a name="id2972247"></a><h3>+<a name="id2962765-bb"></a><code class="computeroutput">rolling_sum_impl</code> public member functions 公有 成员函数</h3>
+<div class="orderedlist"><ol type="1">+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id2962768-bb"></a><span class="bold"><strong>operator</strong></span>()(Args <span class="bold"><strong>const</strong></span> & args) ;</pre></li> +<li><pre class="literallayout"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <span class="type">result_type</span> <a name="id2962789-bb"></a>result(Args <span class="bold"><strong>const</strong></span> & args) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div> +</div> +</div> +</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright (c) 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../extract/rolling_sum.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_sum_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../tag/rolling_sum.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Added: trunk/doc/html/boost/accumulators/impl/rolling_window_impl.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/impl/rolling_window_impl.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,63 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ++<title>Struct template rolling_window_impl</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp" title="Header <boost/accumulators/statistics/rolling_window.hpp>"> +<link rel="prev" href="rolling_window_plus1_impl.html" title="Struct template rolling_window_plus1_impl"> +<link rel="next" href="../tag/rolling_window_plus1.html" title="Struct rolling_window_plus1"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="rolling_window_plus1_impl.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../tag/rolling_window_plus1.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.impl.rolling_window_impl"></a><div class="titlepage"></div>
+<div class="refnamediv">+<h2><span class="refentrytitle">Struct template rolling_window_impl</span></h2>
+<p>boost::accumulators::impl::rolling_window_impl</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp" title="Header <boost/accumulators/statistics/rolling_window.hpp>">boost/accumulators/statistics/rolling_window.hpp</a>><br><br></em></span><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Sample> <br><span class="bold"><strong>struct</strong></span> <a class="link" href="rolling_window_impl.html" title="Struct template rolling_window_impl">rolling_window_impl</a> {<br> <span class="emphasis"><em>// types</em></span> + <span class="bold"><strong>typedef</strong></span> circular_buffer< Sample >::const_iterator <a name="boost.accumulators.impl.rolling_window_impl.const_iterator"></a>const_iterator;<br> <span class="bold"><strong>typedef</strong></span> iterator_range< const_iterator > <a name="boost.accumulators.impl.rolling_window_impl.result_type"></a>result_type; <br><br> <span class="emphasis"><em>// <a class="link" href="rolling_window_impl.html#boost.accumulators.impl.rolling_window_implconstruct-copy-destruct">construct/copy/destruct</a></em></span> + <a class="link" href="rolling_window_impl.html#id2963041-bb">rolling_window_impl</a>(dont_care);<br><br> <span class="emphasis"><em>// <a class="link" href="rolling_window_impl.html#id2963016-bb">public member functions</a></em></span> + <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <span class="type">result_type</span> <a class="link" href="rolling_window_impl.html#id2963020-bb">result</a>(Args <span class="bold"><strong>const</strong></span> &) <span class="bold"><strong>const</strong></span>;<br>};</pre></div>
+<div class="refsect1" lang="en"> +<a name="id2973422"></a><h2>Description 说明</h2> +<div class="refsect2" lang="en"> +<a name="id2973425"></a><h3>+<a name="boost.accumulators.impl.rolling_window_implconstruct-copy-destruct"></a><code class="computeroutput">rolling_window_impl</code>
+ public + construct/copy/destruct 公有构造/复制/析构</h3>+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id2963041-bb"></a>rolling_window_impl(dont_care);</pre></li></ol></div>
+</div> +<div class="refsect2" lang="en"> +<a name="id2973461"></a><h3>+<a name="id2963016-bb"></a><code class="computeroutput">rolling_window_impl</code> public member functions 公 有成员函数</h3> +<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <span class="type">result_type</span> <a name="id2963020-bb"></a>result(Args <span class="bold"><strong>const</strong></span> & args) <span class="bold"><strong>const</strong></span>;</pre></li></ol></div>
+</div> +</div> +</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright (c) 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="rolling_window_plus1_impl.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../tag/rolling_window_plus1.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Added: trunk/doc/html/boost/accumulators/impl/rolling_window_plus1_impl.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/impl/rolling_window_plus1_impl.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,71 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ++<title>Struct template rolling_window_plus1_impl</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp" title="Header <boost/accumulators/statistics/rolling_window.hpp>"> +<link rel="prev" href="../extract/rolling_window.html" title="Global rolling_window"> +<link rel="next" href="rolling_window_impl.html" title="Struct template rolling_window_impl"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../extract/rolling_window.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rolling_window_impl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.impl.rolling_window_plus1_impl"></a><div class="titlepage"></div>
+<div class="refnamediv">+<h2><span class="refentrytitle">Struct template rolling_window_plus1_impl</span></h2>
+<p>boost::accumulators::impl::rolling_window_plus1_impl</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp" title="Header <boost/accumulators/statistics/rolling_window.hpp>">boost/accumulators/statistics/rolling_window.hpp</a>><br><br></em></span><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Sample> <br><span class="bold"><strong>struct</strong></span> <a class="link" href="rolling_window_plus1_impl.html" title="Struct template rolling_window_plus1_impl">rolling_window_plus1_impl</a> {<br> <span class="emphasis"><em>// types</em></span> + <span class="bold"><strong>typedef</strong></span> circular_buffer< Sample >::const_iterator <a name="boost.accumulators.impl.rolling_window_plus1_impl.const_iterator"></a>const_iterator;<br> <span class="bold"><strong>typedef</strong></span> iterator_range< const_iterator > <a name="boost.accumulators.impl.rolling_window_plus1_impl.result_type"></a>result_type; <br><br> <span class="emphasis"><em>// <a class="link" href="rolling_window_plus1_impl.html#boost.accumulators.impl.rolling_window_plus1_implconstruct-copy-destruct">construct/copy/destruct</a></em></span> + <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <a class="link" href="rolling_window_plus1_impl.html#id2962960-bb">rolling_window_plus1_impl</a>(Args <span class="bold"><strong>const</strong></span> &);<br> <a class="link" href="rolling_window_plus1_impl.html#id2962974-bb">rolling_window_plus1_impl</a>(<a class="link" href="rolling_window_plus1_impl.html" title="Struct template rolling_window_plus1_impl">rolling_window_plus1_impl</a> <span class="bold"><strong>const</strong></span> &);<br> rolling_window_plus1_impl& <a class="link" href="rolling_window_plus1_impl.html#id2962984-bb"><span class="bold"><strong>operator</strong></span>=</a>(<a class="link" href="rolling_window_plus1_impl.html" title="Struct template rolling_window_plus1_impl">rolling_window_plus1_impl</a> <span class="bold"><strong>const</strong></span> &);<br><br> <span class="emphasis"><em>// <a class="link" href="rolling_window_plus1_impl.html#id2962914-bb">public member functions</a></em></span> + <span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <span class="type"><span class="bold"><strong>void</strong></span></span> <a class="link" href="rolling_window_plus1_impl.html#id2962918-bb"><span class="bold"><strong>operator</strong></span>()</a>(Args <span class="bold"><strong>const</strong></span> &) ;<br> <span class="type"><span class="bold"><strong>bool</strong></span></span> <a class="link" href="rolling_window_plus1_impl.html#id2962938-bb">full</a>() <span class="bold"><strong>const</strong></span>;<br> <span class="type">result_type</span> <a class="link" href="rolling_window_plus1_impl.html#id2962946-bb">result</a>(dont_care) <span class="bold"><strong>const</strong></span>;<br>};</pre></div>
+<div class="refsect1" lang="en"> +<a name="id2973024"></a><h2>Description 说明</h2> +<div class="refsect2" lang="en"> +<a name="id2973027"></a><h3>+<a name="boost.accumulators.impl.rolling_window_plus1_implconstruct-copy-destruct"></a><code class="computeroutput">rolling_window_plus1_impl</code>
+ public + construct/copy/destruct 公有构造/复制/析构</h3> +<div class="orderedlist"><ol type="1">+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <a name="id2962960-bb"></a>rolling_window_plus1_impl(Args <span class="bold"><strong>const</strong></span> & args);</pre></li> +<li><pre class="literallayout"><a name="id2962974-bb"></a>rolling_window_plus1_impl(<a class="link" href="rolling_window_plus1_impl.html" title="Struct template rolling_window_plus1_impl">rolling_window_plus1_impl</a> <span class="bold"><strong>const</strong></span> & that);</pre></li> +<li><pre class="literallayout">rolling_window_plus1_impl& <a name="id2962984-bb"></a><span class="bold"><strong>operator</strong></span>=(<a class="link" href="rolling_window_plus1_impl.html" title="Struct template rolling_window_plus1_impl">rolling_window_plus1_impl</a> <span class="bold"><strong>const</strong></span> & that);</pre></li>
+</ol></div> +</div> +<div class="refsect2" lang="en"> +<a name="id2973145"></a><h3>+<a name="id2962914-bb"></a><code class="computeroutput">rolling_window_plus1_impl</code> public member functions 公有成员函数</h3>
+<div class="orderedlist"><ol type="1">+<li><pre class="literallayout"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Args> <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id2962918-bb"></a><span class="bold"><strong>operator</strong></span>()(Args <span class="bold"><strong>const</strong></span> & args) ;</pre></li> +<li><pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id2962938-bb"></a>full() <span class="bold"><strong>const</strong></span>;</pre></li> +<li><pre class="literallayout"><span class="type">result_type</span> <a name="id2962946-bb"></a>result(dont_care) <span class="bold"><strong>const</strong></span>;</pre></li>
+</ol></div> +</div> +</div> +</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright (c) 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../extract/rolling_window.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rolling_window_impl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Added: trunk/doc/html/boost/accumulators/tag/rolling_count.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/tag/rolling_count.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,46 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ++<title>Struct rolling_count</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_count_hpp" title="Header <boost/accumulators/statistics/rolling_count.hpp>"> +<link rel="prev" href="../impl/rolling_count_impl.html" title="Struct template rolling_count_impl"> +<link rel="next" href="../extract/rolling_mean.html" title="Global rolling_mean"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../impl/rolling_count_impl.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_count_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../extract/rolling_mean.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.tag.rolling_count"></a><div class="titlepage"></div>
+<div class="refnamediv"> +<h2><span class="refentrytitle">Struct rolling_count</span></h2> +<p>boost::accumulators::tag::rolling_count</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_count_hpp" title="Header <boost/accumulators/statistics/rolling_count.hpp>">boost/accumulators/statistics/rolling_count.hpp</a>><br><br></em></span> +<span class="bold"><strong>struct</strong></span> <a class="link" href="rolling_count.html" title="Struct rolling_count">rolling_count</a> : <span class="bold"><strong>public</strong></span> boost::accumulators::depends_on< boost::accumulators::tag::rolling_window_plus1 ><br>{<br> <span class="bold"><strong>static</strong></span> <span class="type">boost::parameter::keyword< tag::rolling_window_size > <span class="bold"><strong>const</strong></span></span> window_size;<br>};</pre></div>
+</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright (c) 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../impl/rolling_count_impl.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_count_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../extract/rolling_mean.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Added: trunk/doc/html/boost/accumulators/tag/rolling_mean.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/tag/rolling_mean.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,46 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ++<title>Struct rolling_mean</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_mean_hpp" title="Header <boost/accumulators/statistics/rolling_mean.hpp>"> +<link rel="prev" href="../impl/rolling_mean_impl.html" title="Struct template rolling_mean_impl"> +<link rel="next" href="../extract/rolling_sum.html" title="Global rolling_sum"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../impl/rolling_mean_impl.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_mean_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../extract/rolling_sum.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.tag.rolling_mean"></a><div class="titlepage"></div>
+<div class="refnamediv"> +<h2><span class="refentrytitle">Struct rolling_mean</span></h2> +<p>boost::accumulators::tag::rolling_mean</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_mean_hpp" title="Header <boost/accumulators/statistics/rolling_mean.hpp>">boost/accumulators/statistics/rolling_mean.hpp</a>><br><br></em></span> +<span class="bold"><strong>struct</strong></span> <a class="link" href="rolling_mean.html" title="Struct rolling_mean">rolling_mean</a> : <span class="bold"><strong>public</strong></span> boost::accumulators::depends_on< boost::accumulators::tag::rolling_sum, boost::accumulators::tag::rolling_count ><br>{<br> <span class="bold"><strong>static</strong></span> <span class="type">boost::parameter::keyword< tag::rolling_window_size > <span class="bold"><strong>const</strong></span></span> window_size;<br>};</pre></div>
+</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright (c) 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../impl/rolling_mean_impl.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_mean_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../extract/rolling_sum.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Added: trunk/doc/html/boost/accumulators/tag/rolling_sum.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/tag/rolling_sum.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,46 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ++<title>Struct rolling_sum</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_sum_hpp" title="Header <boost/accumulators/statistics/rolling_sum.hpp>"> +<link rel="prev" href="../impl/rolling_sum_impl.html" title="Struct template rolling_sum_impl"> +<link rel="next" href="../extract/rolling_window_plus1.html" title="Global rolling_window_plus1"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../impl/rolling_sum_impl.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_sum_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../extract/rolling_window_plus1.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.tag.rolling_sum"></a><div class="titlepage"></div>
+<div class="refnamediv"> +<h2><span class="refentrytitle">Struct rolling_sum</span></h2> +<p>boost::accumulators::tag::rolling_sum</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_sum_hpp" title="Header <boost/accumulators/statistics/rolling_sum.hpp>">boost/accumulators/statistics/rolling_sum.hpp</a>><br><br></em></span> +<span class="bold"><strong>struct</strong></span> <a class="link" href="rolling_sum.html" title="Struct rolling_sum">rolling_sum</a> : <span class="bold"><strong>public</strong></span> boost::accumulators::depends_on< boost::accumulators::tag::rolling_window_plus1 ><br>{<br> <span class="bold"><strong>static</strong></span> <span class="type">boost::parameter::keyword< tag::rolling_window_size > <span class="bold"><strong>const</strong></span></span> window_size;<br>};</pre></div>
+</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright (c) 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../impl/rolling_sum_impl.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_sum_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../extract/rolling_window_plus1.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Added: trunk/doc/html/boost/accumulators/tag/rolling_window.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/tag/rolling_window.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,46 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ++<title>Struct rolling_window</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp" title="Header <boost/accumulators/statistics/rolling_window.hpp>"> +<link rel="prev" href="rolling_window_plus1.html" title="Struct rolling_window_plus1"> +<link rel="next" href="../extract/skewness.html" title="Global skewness"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="rolling_window_plus1.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../extract/skewness.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.tag.rolling_window"></a><div class="titlepage"></div>
+<div class="refnamediv"> +<h2><span class="refentrytitle">Struct rolling_window</span></h2> +<p>boost::accumulators::tag::rolling_window</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp" title="Header <boost/accumulators/statistics/rolling_window.hpp>">boost/accumulators/statistics/rolling_window.hpp</a>><br><br></em></span> +<span class="bold"><strong>struct</strong></span> <a class="link" href="rolling_window.html" title="Struct rolling_window">rolling_window</a> : <span class="bold"><strong>public</strong></span> boost::accumulators::depends_on< boost::accumulators::tag::rolling_window_plus1 ><br>{<br> <span class="bold"><strong>static</strong></span> <span class="type">boost::parameter::keyword< tag::rolling_window_size > <span class="bold"><strong>const</strong></span></span> window_size;<br>};</pre></div>
+</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright (c) 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="rolling_window_plus1.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../extract/skewness.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Added: trunk/doc/html/boost/accumulators/tag/rolling_window_plus1.html ============================================================================== --- (empty file)+++ trunk/doc/html/boost/accumulators/tag/rolling_window_plus1.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,46 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> ++<title>Struct rolling_window_plus1</title><link rel="stylesheet" href="../../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">+<link rel="start" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> +<link rel="up" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp" title="Header <boost/accumulators/statistics/rolling_window.hpp>"> +<link rel="prev" href="../impl/rolling_window_impl.html" title="Struct template rolling_window_impl"> +<link rel="next" href="rolling_window.html" title="Struct rolling_window"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../index.html">Home</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> +<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
+<td align="center"><a href="../../../../../more/index.htm">More</a></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../impl/rolling_window_impl.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rolling_window.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +<div class="refentry" lang="en">+<a name="boost.accumulators.tag.rolling_window_plus1"></a><div class="titlepage"></div>
+<div class="refnamediv"> +<h2><span class="refentrytitle">Struct rolling_window_plus1</span></h2> +<p>boost::accumulators::tag::rolling_window_plus1</p> +</div>+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv-title">Synopsis 概要</h2> +<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; class="refsynopsisdiv"><pre class="synopsis"><span class="emphasis"><em>// In header: <<a class="link" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp" title="Header <boost/accumulators/statistics/rolling_window.hpp>">boost/accumulators/statistics/rolling_window.hpp</a>><br><br></em></span> +<span class="bold"><strong>struct</strong></span> <a class="link" href="rolling_window_plus1.html" title="Struct rolling_window_plus1">rolling_window_plus1</a> : <span class="bold"><strong>public</strong></span> boost::accumulators::depends_on< > {<br> <span class="bold"><strong>static</strong></span> <span class="type">boost::parameter::keyword< tag::rolling_window_size > <span class="bold"><strong>const</strong></span></span> window_size;<br>};</pre></div>
+</div>+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
+<td align="left"></td>+<td align="right"><div class="copyright-footer">Copyright (c) 2005, 2006 Eric Niebler<p> + Distributed under the Boost Software License, Version 1.0. (See accompanying + 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>)
+ </p> +</div></td> +</tr></tbody></table> +<hr> +<div class="spirit-nav">+<a accesskey="p" href="../impl/rolling_window_impl.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../accumulators/reference.html#header.boost.accumulators.statistics.rolling_window_hpp"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rolling_window.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div> +</body></html> \ No newline at end of file Added: trunk/libs/flyweight/doc/acknowledgements.html ============================================================================== --- (empty file) +++ trunk/libs/flyweight/doc/acknowledgements.html Tue Feb 24 22:16:26 2009 @@ -0,0 +1,88 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN"> + +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Boost.Flyweight Documentation - Acknowledgements</title> +<link rel="stylesheet" href="style.css" type="text/css"> +<link rel="start" href="index.html"> +<link rel="prev" href="release_notes.html"> +<link rel="up" href="index.html"> +</head> + +<body> +<h1><img src="../../../boost.png" alt="Boost logo" align= +"middle" width="277" height="86">Boost.Flyweight Acknowledgements</h1> ++<div class="prev_link"><a href="release_notes.html"><img src="prev.gif" alt="release notes" border="0"><br>
+Release notes +</a></div>+<div class="up_link"><a href="index.html"><img src="up.gif" alt="index" border="0"><br>
+Index +</a></div> +<div class="next_link"> +</div><br clear="all" style="clear: all;"> + +<hr> + +<p>+The following people have provided valuable feedback and suggestions during the +development of the library: Ion Gaztañaga, Janek Kozicki, Tobias Schwinger,
+Pavel Voženílek. Simon Atanasyan contributed a workaround for a +problem with Sun Studio compilers. Rosa Bernárdez has proofread the +documentation from the first drafts up to its present form. +</p> + +<p> +The acceptance review of Boost.Flyweight took place between January 21st+and February 3rd 2008. Many thanks to Ion Gaztañaga, the stalwart review manager,
+and to all the reviewers: Alberto Ganesh Barbati, Tim Blechmann,+Vicente Juan Botet Escribá, Matías Capeletto, Neil Hunt, Marcus Lindblom, +John Reid, David Sankel, Kevin Sopp, John Torjo, Markus Werle. Alberto identified
+important limitations of the initial design, which led to the +introduction of <a href="tutorial/key_value.html">key-value flyweights</a>. +</p> + +<p> +Boost.Flyweight relies on the +<a href="../../mpl/doc/index.html">Boost MPL Library</a> from +Aleksey Gurtovoy. The+<a href="tutorial/configuration.html#free_order_template">free-order template
+parameter interface</a> offered by the library has been implemented +with the <a href="../../parameter/doc/html/index.html">Boost Parameter +Library</a> from David Abrahams and Daniel Wallin. Ion Gaztañaga's +<a href="../../interprocess/index.html">Boost Interprocess Library</a> +is the core element behind the+<a href="tutorial/configuration.html#intermodule_holder"><code>intermodule_holder</code></a>
+component. +</p> + +<p> +This work is dedicated to Jorge López, in the hope that past +dire straits gentler oceans will lie. +</p> + +<hr> ++<div class="prev_link"><a href="release_notes.html"><img src="prev.gif" alt="release notes" border="0"><br>
+Release notes +</a></div>+<div class="up_link"><a href="index.html"><img src="up.gif" alt="index" border="0"><br>
+Index +</a></div> +<div class="next_link"> +</div><br clear="all" style="clear: all;"> + +<br> + +<p>Revised December 10th 2008</p> + +<p>© Copyright 2006-2008 Joaquín M López Muñoz. +Distributed under the Boost Software+License, Version 1.0. (See accompanying file <a href="../../../LICENSE_1_0.txt"> +LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt";>
+http://www.boost.org/LICENSE_1_0.txt</a>) +</p> + +</body> +</html> Added: trunk/libs/flyweight/doc/examples.html ============================================================================== --- (empty file) +++ trunk/libs/flyweight/doc/examples.html Tue Feb 24 22:16:26 2009 @@ -0,0 +1,258 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN"> + +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Boost.Flyweight Documentation - Examples</title> +<link rel="stylesheet" href="style.css" type="text/css"> +<link rel="start" href="index.html"> +<link rel="prev" href="performance.html"> +<link rel="up" href="index.html"> +<link rel="next" href="tests.html"> +</head> + +<body> +<h1><img src="../../../boost.png" alt="Boost logo" align= +"middle" width="277" height="86">Boost.Flyweight Examples</h1> ++<div class="prev_link"><a href="performance.html"><img src="prev.gif" alt="performance" border="0"><br>
+Performance +</a></div>+<div class="up_link"><a href="index.html"><img src="up.gif" alt="index" border="0"><br>
+Index +</a></div>+<div class="next_link"><a href="tests.html"><img src="next.gif" alt="tests" border="0"><br>
+Tests +</a></div><br clear="all" style="clear: all;"> +<br clear="all" style="clear: all;"> + +<hr> + +<h2>Contents</h2> + +<ul> + <li><a href="#example1">Example 1: basic usage</a></li> + <li><a href="#example2">Example 2: key-value flyweights</a></li>+ <li><a href="#example3">Example 3: flyweights and the composite pattern</a></li>
+ <li><a href="#example4">Example 4: formatted text processing</a></li> + <li><a href="#example5">Example 5: flyweight-based memoization</a></li> + <li><a href="#example6">Example 6: performance comparison</a></li> + <li><a href="#example7">Example 7: custom factory</a></li> +</ul> + +<h2><a name="example1">Example 1: basic usage</a></h2> + +<p> +See <a href="../example/basic.cpp">source code</a>. +</p> + +<p> +Dummy program showing the basic capabilities of <code>flyweight</code> +explained at the <a href="tutorial/basics.html">tutorial</a>. +</p> + +<h2><a name="example2">Example 2: key-value flyweights</a></h2> + +<p> +See <a href="../example/key_value.cpp">source code</a>. +</p> + +<p> +The program simulates the scenario described at the tutorial section on +<a href="tutorial/key_value.html">key-value flyweights</a>: The class +<code>texture</code> manages some texture rendering data stored in +a file whose location is given at construction time. The program +handles large quantities of objects of this class by encapsulating +them into key-value flyweights keyed by filename. Observe how the +execution of the program results in no extra constructions or copies +of objects of type <code>texture</code> except those absolutely +necessary. +</p> ++<h2><a name="example3">Example 3: flyweights and the composite pattern</a></h2>
+ +<p> +See <a href="../example/composite.cpp">source code</a>. +</p> + +<p> +The <a href="http://c2.com/cgi/wiki?CompositePattern";><i>composite +design pattern</i></a> revolves about the idea that a tree data structure +can be easily constructed and manipulated by defining the tree node type +polymorphically so that either is a leaf node or else contains a list of +pointers to their child nodes. +This way, a tree is the exact same entity as its root node, which allows +for very simple recursive tree-handling algorithms. Large composite trees +having a high degree of duplication of nodes and subtrees (as for instance +those generated when parsing a computer program) are a natural fit for the +flyweight idiom: simply turning the node type into a flyweight +automatically deals with duplication at the node and subtree level. +</p> + +<p> +The example program parses Lisp-like lists of the form +<code>(a<sub>1</sub> ... a<sub><i>n</i></sub>)</code> where each +<code>a<sub>i</sub></code> is a terminal string or a list. The parsed+data structure is a composite type defined using Boost.Flyweight in conjunction
+with the recursive facilities of +<a href="../../variant/index.html">Boost.Variant</a>. So, given the list +</p> + +<blockquote><pre> +(= (tan (+ x y))(/ (+ (tan x)(tan y))(- 1 (* (tan x)(tan y))))) +</pre></blockquote> + +<p> +the resulting data structure implicitly detects the duplicated +occurrences of <code>+</code>, <code>x</code>, <code>y</code>, +<code>tan</code>, <code>(tan x)</code> and <code>(tan y)</code>. +</p> + +<h2><a name="example4">Example 4: formatted text processing</a></h2> + +<p> +See <a href="../example/html.cpp">source code</a>. +</p> + +<p> +A classic example of application of the flyweight pattern is that of a +text processor which handles characters with rich formatting information, +like font type, size, color and special options (boldness, italics, etc.) +Coding the formatting information of each character takes considerable +space, but, given the high degree of repetition typical in a document, +maintaining formatted characters as flyweight objects drastically reduces +memory consumption. +</p> + +<p> +The example program parses, manipulates and stores HTML documents following +flyweight-based representation techniques. Given the hierarchical nature +of HTML markup, a crude approximation to the formatting options of a given +character is just to equate them with the stack of tag contexts to which +the character belongs, as the figure shows. +</p> + +<p align="center"> +<img src="html.png" +alt="formatting contexts of characters in an HTML document" +width="320" height="275"><br> +<b>Fig. 1: Formatting contexts of characters in an HTML document.</b> +</p> + +<p> +HTML documents are then parsed as arrays of (character, format)+pairs, where the format is the tag context as described above. The very high
+degree of redundancy in formatting information is taken care of by the +use of Boost.Flyweight. This character-based representation makes it +easy to manipulate the document: transposition and elimination of +portions of text are trivial operations. As an example, the program +reverses the text occupying the central portion of the document. +Saving the result in HTML reduces to traversing the array of formatted+characters and emitting opening/closing HTML tags as the context of adjacent
+characters varies. +</p> + +<p> +For the sake of brevity, the HTML parsing capabilities of this program+are coarse: for instance, elements without end-tag (like <BR>), character
+enconding and HTML entities (e.g. "&copy;" for ©) are not properly +handled. Improving the parsing code is left as an exercise to the reader. +</p> + +<h2><a name="example5">Example 5: flyweight-based memoization</a></h2> + +<p> +See <a href="../example/fibonacci.cpp">source code</a>. +</p> + +<p> +<a href="http://en.wikipedia.org/wiki/Memoization";>Memoization</a> +is an optimization technique consisting in caching +the results of a computation for later reuse; this can dramatically +improve performance when calculating recursive numerical functions, +for instance. <a href="tutorial/key_value.html">Key-value flyweights</a> +can be used to implement memoization for a numerical function <i>f</i> +by modeling a memoized invocation of the function as a value of +type <code>flyweight<key_value<int,compute_f> ></code>, where +<code>compute_f</code> is a type that does the computation of+<i>f</i>(<i>n</i>) at its <code>compute_f::compute_f(int)</code> constructor. +For instance, the <a href="http://mathworld.wolfram.com/FibonacciNumber.html";>Fibonacci
+numbers</a> can be computed with memoization like this: +</p> + +<blockquote><pre>+<span class=keyword>typedef</span> <span class=identifier>flyweight</span><span class=special><</span><span class=identifier>key_value</span><span class=special><</span><span class=keyword>int</span><span class=special>,</span><span class=identifier>compute_fibonacci</span><span class=special>>,</span><span class=identifier>no_tracking</span><span class=special>></span> <span class=identifier>fibonacci</span><span class=special>;</span>
++<span class=keyword>struct</span> <span class=identifier>compute_fibonacci</span>
+<span class=special>{</span>+ <span class=identifier>compute_fibonacci</span><span class=special>(</span><span class=keyword>int</span> <span class=identifier>n</span><span class=special>):</span> + <span class=identifier>result</span><span class=special>(</span><span class=identifier>n</span><span class=special>==</span><span class=number>0</span><span class=special>?</span><span class=number>0</span><span class=special>:</span><span class=identifier>n</span><span class=special>==</span><span class=number>1</span><span class=special>?</span><span class=number>1</span><span class=special>:</span><span class=identifier>fibonacci</span><span class=special>(</span><span class=identifier>n</span><span class=special>-</span><span class=number>2</span><span class=special>).</span><span class=identifier>get</span><span class=special>()+</span><span class=identifier>fibonacci</span><span class=special>(</span><span class=identifier>n</span><span class=special>-</span><span class=number>1</span><span class=special>).</span><span class=identifier>get</span><span class=special>())</span>
+ <span class=special>{}</span> ++ <span class=keyword>operator</span> <span class=keyword>int</span><span class=special>()</span><span class=keyword>const</span><span class=special>{</span><span class=keyword>return</span> <span class=identifier>result</span><span class=special>;}</span> + <span class=keyword>int</span> <span class=identifier>result</span><span class=special>;</span>
+<span class=special>};</span> +</pre></blockquote> + +<p>+The <a href="tutorial/configuration.html#no_tracking"><code>no_tracking</code></a>
+policy is used so that the memoized computations persist for future+use throughout the program. The provided program develops this example in full.
+</p> + +<h2><a name="example6">Example 6: performance comparison</a></h2> + +<p> +See <a href="../example/perf.cpp">source code</a>. +</p> + +<p> +This program measures the time and space performances of a simple +string type against several differently configured <code>flyweight</code> +instantations as used in a conventional task involving parsing a file and +doing some manipulations on the parsed text. +Memory consumption is computed by instrumenting the relevant +components (the string type itself, flyweight factories, etc.) with custom +allocators that keep track of the allocations and deallocations requested. +The program has been used to produce the experimental results given +at the <a href="performance.html#results">performance section</a>. +</p> + +<h2><a name="example7">Example 7: custom factory</a></h2> + +<p> +See <a href="../example/custom_factory.cpp">source code</a>. +</p> + +<p> +The example shows how to write and use a custom factory class. This+"verbose" factory outputs messages tracing the invocations of its public interface
+by Boost.Flyweight, so helping the user visualize factory usage patterns. +</p> + +<hr> ++<div class="prev_link"><a href="performance.html"><img src="prev.gif" alt="performance" border="0"><br>
+Performance +</a></div>+<div class="up_link"><a href="index.html"><img src="up.gif" alt="index" border="0"><br>
+Index +</a></div>+<div class="next_link"><a href="tests.html"><img src="next.gif" alt="tests" border="0"><br>
+Tests +</a></div><br clear="all" style="clear: all;"> +<br clear="all" style="clear: all;"> + +<br> + +<p>Revised December 2nd 2008</p> + +<p>© Copyright 2006-2008 Joaquín M López Muñoz. +Distributed under the Boost Software+License, Version 1.0. (See accompanying file <a href="../../../LICENSE_1_0.txt"> +LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt";>
+http://www.boost.org/LICENSE_1_0.txt</a>) +</p> + +</body> +</html> Added: trunk/libs/flyweight/doc/future_work.html ============================================================================== --- (empty file) +++ trunk/libs/flyweight/doc/future_work.html Tue Feb 24 22:16:26 2009 @@ -0,0 +1,128 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN"> + +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Boost.Flyweight Documentation - Future work</title> +<link rel="stylesheet" href="style.css" type="text/css"> +<link rel="start" href="examples.html"> +<link rel="prev" href="tests.html"> +<link rel="up" href="index.html"> +<link rel="next" href="release_notes.html"> +</head> + +<body> +<h1><img src="../../../boost.png" alt="Boost logo" align= +"middle" width="277" height="86">Boost.Flyweight Future work</h1> ++<div class="prev_link"><a href="tests.html"><img src="prev.gif" alt="examples" border="0"><br>
+Tests +</a></div>+<div class="up_link"><a href="index.html"><img src="up.gif" alt="index" border="0"><br>
+Index +</a></div>+<div class="next_link"><a href="release_notes.html"><img src="next.gif" alt="release notes" border="0"><br>
+Release notes +</a></div><br clear="all" style="clear: all;"> +<br clear="all" style="clear: all;"> + +<hr> + +<p> +New functionalities can be included into future releases of Boost.Flyweight +to meet the demands of users and to leverage upcoming C++0x features +and new Boost libraries. The following is a list of candidate additions. +</p> + +<h2>Contents</h2> + +<ul> + <li><a href="#instrospection">Introspection API</a></li> + <li><a href="#perfect_fwd">Perfect forwarding</a></li> + <li><a href="#rw_lock">Read/write locking policy</a></li>+ <li><a href="#new_boost_libs">Integration with new Boost libraries</a></li>
+</ul> + +<h2><a name="instrospection">Introspection API</a></h2> + +<p> +Currently there is no way to access the internal components of a +<code>flyweight</code> instantiation (factory, holder, etc.) or even +to know the types of these components. With such an API it would be +possible to instrument and monitor the usage of Boost.Flyweight like in +the following example: +</p> + +<blockquote><pre>+<span class=keyword>typedef</span> <span class=identifier>flyweight</span><span class=special><</span><span class=identifier>std</span><span class=special>::</span><span class=identifier>string</span><span class=special>></span> <span class=identifier>fw_type</span><span class=special>;</span>
+<span class=special>...</span>+<span class=identifier>std</span><span class=special>::</span><span class=identifier>cout</span><span class=special><<</span><span class=string>"factory used: "</span><span class=special><<</span><span class=keyword>typeid</span><span class=special>(</span><span class=identifier>fw_type</span><span class=special>::</span><span class=identifier>factory_type</span><span class=special>).</span><span class=identifier>name</span><span class=special>()<<</span><span class=identifier>std</span><span class=special>::</span><span class=identifier>endl</span><span class=special>;</span> +<span class=identifier>std</span><span class=special>::</span><span class=identifier>cout</span><span class=special><<</span><span class=string>"values stored: "</span><span class=special><<</span><span class=identifier>fw_type</span><span class=special>::</span><span class=identifier>factory</span><span class=special>().</span><span class=identifier>size</span><span class=special>()<<</span><span class=identifier>std</span><span class=special>::</span><span class=identifier>endl</span><span class=special>;</span>
+</pre></blockquote> + +<h2><a name="perfect_fwd">Perfect forwarding</a></h2> + +<p>+When constructing a <code>flyweight<T> object</code>, some spurious copies +of objects of type <code>T</code> are incurred in the process of moving the value +into the internal factory. So-called <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2027.html#Perfect_Forwarding";><i>perfect
+forwarding</i></a>, i.e. performing the move without generating temporary +copies, will be solved in an optimum manner by a new +type of <i>rvalue references</i> to be included in the next revision of the +C++ standard. Boost.Flyweight will take advantage of this feature as +compilers begin to provide it. +</p> + +<h2><a name="rw_lock">Read/write locking policy</a></h2> + +<p> +The nature of the flyweight pattern implies that most accesses +to the internal flyweight factory do not cause new insertions and can +thus be considered read-only. This hints at the convenience of using +a locking policy based on read/write locks such as those provided by+<a href="../../../doc/html/thread/synchronization.html#thread.synchronization.mutex_concepts.shared_lockable">Boost.Thread</a>.
+Implementing a locking policy will also require extending the +<a href="reference/factories.html#factory"><code>Factory</code></a> concept +to allow for pure lookup operations. Tim Blechmann has provided a+preliminary <a href="http://lists.boost.org/Archives/boost/2008/07/139414.php";>implementation</a>
+of this idea. Before committing to this library extension it is +necessary to do a profiling study to determine whether read/write +locking actually improves performance. +</p> + +<h2><a name="new_boost_libs">Integration with new Boost libraries</a></h2> + +<p> +Recently accepted Boost libraries like+<a href="http://lists.boost.org/boost-announce/2007/12/0149.php";>Boost.Functional/Forward</a> +and <a href="http://lists.boost.org/boost-announce/2007/12/0157.php";>Boost.Functional/Factory</a>
+might be used in the future to replace some internal machinery of +Boost.Flyweight. +</p> + +<hr> ++<div class="prev_link"><a href="tests.html"><img src="prev.gif" alt="examples" border="0"><br>
+Tests +</a></div>+<div class="up_link"><a href="index.html"><img src="up.gif" alt="index" border="0"><br>
+Index +</a></div>+<div class="next_link"><a href="release_notes.html"><img src="next.gif" alt="release notes" border="0"><br>
+Release notes +</a></div><br clear="all" style="clear: all;"> +<br clear="all" style="clear: all;"> + +<br> + +<p>Revised September 1st 2008</p> + +<p>© Copyright 2006-2008 Joaquín M López Muñoz. +Distributed under the Boost Software+License, Version 1.0. (See accompanying file <a href="../../../LICENSE_1_0.txt"> +LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt";>
+http://www.boost.org/LICENSE_1_0.txt</a>) +</p> + +</body> +</html> Added: trunk/libs/flyweight/doc/html.png ============================================================================== Binary file. No diff available. Added: trunk/libs/flyweight/doc/index.html ============================================================================== --- (empty file) +++ trunk/libs/flyweight/doc/index.html Tue Feb 24 22:16:26 2009 @@ -0,0 +1,82 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN"> + +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Boost.Flyweight Documentation - Index</title> +<link rel="stylesheet" href="style.css" type="text/css"> +<link rel="start" href="index.html"> +<link rel="next" href="tutorial/index.html"> +</head> + +<body> +<h1><img src="../../../boost.png" alt="Boost logo" align= +"middle" width="277" height="86">Boost Flyweight Library</h1> + +<div class="prev_link"></div> +<div class="up_link"></div>+<div class="next_link"><a href="tutorial/index.html"><img src="next.gif" alt="tutorial" border="0"><br>
+Tutorial +</a></div><br clear="all" style="clear: all;"> + +<hr> + +<p>+Flyweights are small-sized handle classes granting constant access to shared
+common data, thus allowing for the management of large amounts of entities +within reasonable memory limits. Boost.Flyweight makes it easy to use this +common programming idiom by providing the class template +<code>flyweight<T></code>, which acts as a drop-in replacement for +<code>const T</code>. +</p> + +<p> +Learning to use Boost.Flyweight can be accomplished in a matter of minutes. +When special needs arise, however, an extensive customization interface+is provided which allows the user to control and extend the following aspects:
+<ul> + <li>Type tagging for separation of domains using the same basic + flyweight types.</li> + <li>Specification and parameterization of the so-called flyweight + factory.</li> + <li>Control of the factory instantiation procedure.</li> + <li>Specification of the internal synchronization mechanisms.</li> + <li>Flyweight tracking, allowing for the disposal of stored + values when no longer referenced by any flyweight object.</li> +</ul> +</p> + +<h2>Contents</h2> + +<ul> + <li><a href="tutorial/index.html">Tutorial</a></li> + <li><a href="reference/index.html">Reference</a></li> + <li><a href="performance.html">Performance</a></li> + <li><a href="examples.html">Examples</a></li> + <li><a href="tests.html">Tests</a></li> + <li><a href="future_work.html">Future work</a></li> + <li><a href="release_notes.html">Release notes</a></li> + <li><a href="acknowledgements.html">Acknowledgements</a></li> +</ul> + +<hr> + +<div class="prev_link"></div> +<div class="up_link"></div>+<div class="next_link"><a href="tutorial/index.html"><img src="next.gif" alt="tutorial" border="0"><br>
+Tutorial +</a></div><br clear="all" style="clear: all;"> + +<br> + +<p>Revised September 3rd 2008</p> + +<p>© Copyright 2006-2008 Joaquín M López Muñoz. +Distributed under the Boost Software+License, Version 1.0. (See accompanying file <a href="../../../LICENSE_1_0.txt"> +LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt";>
+http://www.boost.org/LICENSE_1_0.txt</a>) +</p> + +</body> +</html> Added: trunk/libs/flyweight/doc/memory.png ============================================================================== Binary file. No diff available. Added: trunk/libs/flyweight/doc/memory_gcc_344.png ============================================================================== Binary file. No diff available. Added: trunk/libs/flyweight/doc/memory_msvc_80.png ============================================================================== Binary file. No diff available. Added: trunk/libs/flyweight/doc/next.gif ============================================================================== Binary file. No diff available. Added: trunk/libs/flyweight/doc/performance.html ============================================================================== --- (empty file) +++ trunk/libs/flyweight/doc/performance.html Tue Feb 24 22:16:26 2009 @@ -0,0 +1,472 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN"> + +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Boost.Flyweight Documentation - Performance</title> +<link rel="stylesheet" href="style.css" type="text/css"> +<link rel="start" href="index.html"> +<link rel="prev" href="reference/tracking.html"> +<link rel="up" href="index.html"> +<link rel="next" href="examples.html"> +</head> + +<body> +<h1><img src="../../../boost.png" alt="Boost logo" align= +"middle" width="277" height="86">Boost.Flyweight Performance</h1> ++<div class="prev_link"><a href="reference/tracking.html"><img src="prev.gif" alt="tracking policies" border="0"><br>
+Tracking policies +</a></div>+<div class="up_link"><a href="index.html"><img src="up.gif" alt="index" border="0"><br>
+Index +</a></div>+<div class="next_link"><a href="examples.html"><img src="next.gif" alt="examples" border="0"><br>
+Examples +</a></div><br clear="all" style="clear: all;"> +<br clear="all" style="clear: all;"> + +<hr> + +<h2>Contents</h2> + +<ul> + <li><a href="#intro">Introduction</a></li> + <li><a href="#memory">Memory consumption</a> + <ul> + <li><a href="#flyweight_size">Flyweight size</a></li> + <li><a href="#entry_size">Entry size</a></li> + <li><a href="#overall_memory">Overall memory consumption</a></li> + </ul> + </li> + <li><a href="#time">Time efficiency</a> + <ul> + <li><a href="#initialization">Initialization</a></li> + <li><a href="#assignment">Assignment</a></li> + <li><a href="#equality_comparison">Equality comparison</a></li> + <li><a href="#value_access">Value access</a></li> + </ul> + </li> + <li><a href="#results">Experimental results</a> + <ul> + <li><a href="#msvc_80">Microsoft Visual C++ 8.0</a> + <ul> + <li><a href="#msvc_80_memory">Memory</a></li> + <li><a href="#msvc_80_time">Execution time</a></li> + </ul> + </li> + <li><a href="#gcc_344">GCC 3.4.4</a> + <ul> + <li><a href="#gcc_344_memory">Memory</a></li> + <li><a href="#gcc_344_time">Execution time</a></li> + </ul> + </li> + </ul> + </li> + <li><a href="#conclusions">Conclusions</a></li> +</ul> + +<h2><a name="intro">Introduction</a></h2> + +<p> +We show how to estimate the memory reduction obtained by the usage of+Boost.Flyweight in a particular scenario and study the impact on the execution
+time for the different functional areas of <code>flyweight</code>. +Some experimental results are provided. +</p> + +<h2><a name="memory">Memory consumption</a></h2> + +<p>+As we saw in the <a href="tutorial/index.html#rationale">tutorial rationale</a>,
+the flyweight pattern is based on two types of objects: +<ul> + <li>The flyweight objects proper, which have very small size, typically + that of a pointer. + </li>+ <li>The shared values, which are stored as internal <i>entries</i> into the
+ flyweight factory. + </li> +</ul> +The overall memory consumption is then a function of the size of the +flyweight objects, the size of the entry objects and the degree of +value redundancy. +</p> + +<h3><a name="flyweight_size">Flyweight size</a></h3> + +<p> +The only data member of a <code>flyweight</code> object is a so-called +<i>handle</i>, an opaque object of small size provided by the internal +flyweight factory to refer to the entries it stores. For the default+<a href="tutorial/configuration.html#hashed_factory"><code>hashed_factory</code></a>, +this handle is merely a pointer, so <code>sizeof(flyweight<T>)=sizeof(void*)</code>,
+4 bytes in typical 32-bit architectures. +For other types of factories, the handle is an iterator to an internal +container used in the implementation of the factory: again, its size +is typically that of a pointer. +</p> + +<h3><a name="entry_size">Entry size</a></h3> + +<p>+The entries stored in the factory associated to <code>flyweight<T,...></code>
+need not only hold a value of <code>T</code>, but also contain additional +information related to the internal implementation of +<code>flyweight<T,...></code>: +</p> + +<blockquote> +<i>entry</i> = <code>sizeof(T)</code> + <i>overhead</i>. +</blockquote> + +<p> +For the current implementation of Boost.Flyweight, the following aspects +contribute to <i>overhead</i>: +<ul>+ <li>Usage of <a href="tutorial/key_value.html">key-value flyweights</a>.</li> + <li>Internal overhead of the <a href="tutorial/configuration.html#factories">factory</a>
+ container. + </li> + <li>Bookkeeping information associated to the + <a href="tutorial/configuration.html#tracking">tracking mechanism</a>. + </li> +</ul>+The table summarizes the separate contributions to <i>overhead</i> introduced
+by the different components taking part of the definition of +a <code>flyweight</code> instantiation. Values are given in <i>words</i>,+i.e. the size of a pointer, which is 4 bytes in a typical 32-bit architecture.
+Alignment may introduce additional overhead. +</p> + +<p align="center"> +<table cellspacing="0">+ <caption><b>Entry overhead of the components of Boost.Flyweight.</b></caption>
+<tr> + <th align="center"colspan="2">component</th> + <th align="center">overhead (words)</th> +</tr> +<tr>+ <td align="center" rowspan="2"> <a href="tutorial/key_value.html#key_value"><code>key_value</code></a> </td> + <td align="center"> with <a href="tutorial/key_value.html#key_extractor">key extractor</a> </td>
+ <td align="center"> 1<sup>(1)</sup> </td> +</tr> +<tr>+ <td align="center"> without <a href="tutorial/key_value.html#key_extractor">key extractor</a> </td>
+ <td align="center"> 1 + <code>sizeof(Key) </td> +</tr> +<tr class="odd_tr"> + <td align="center" rowspan="3"> factory </td>+ <td align="center"> <a href="tutorial/configuration.html#hashed_factory"><code>hashed_factory</code></a> </td>
+ <td align="center"> ~2.5 </td> +</tr> +<tr class="odd_tr">+ <td align="center"> <a href="tutorial/configuration.html#set_factory"><code>set_factory</code></a> </td>
+ <td align="center"> 4<sup>(2)</sup> </td> +</tr> +<tr class="odd_tr">+ <td align="center"> <a href="tutorial/configuration.html#assoc_container_factory"><code>assoc_container_factory</code></a> </td> + <td align="center"> depends on the container used </td>
+</tr> +<tr>+ <td align="center" rowspan="2"> tracking mechanism </td> + <td align="center"> <a href="tutorial/configuration.html#refcounted"><code>refcounted</code></a> </td>
+ <td align="center"> 1<sup>(3)</sup> </td> +</tr> +<tr>+ <td align="center"> <a href="tutorial/configuration.html#no_tracking"><code>no_tracking</code></a> </td>
+ <td align="center"> 0 </td> +</tr> +</table>+<sup>(1)</sup> <small>Assuming that <code>sizeof(Key)<=sizeof(Value)</code>.</small><br> +<sup>(2)</sup> <small>For some implementations of <code>std::set</code> this overhead reduces to 3.</small><br>
+<sup>(3)</sup> <small>In some platforms this value can be 2.</small> +</p> + +<p>+For instance, for the default configuration parameters of <code>flyweight</code>, +<i>overhead</i> is typically 2.5(<code>hashed_factory</code>) + 1(<code>refcounted</code>)
+= 3 words. +</p> + +<h3><a name="overall_memory">Overall memory consumption</a></h3> + +<p>+Consider a scenario where there are <i>N</i> different objects of type <code>T</code>
+jointly taking <i>M</i> different values. The objects consume then +<i>S</i> = <i>N</i>·<i>T</i> bytes, where <i>T</i> is defined as the +average size of <code>T</code> (<code>sizeof(T)</code> plus dynamic +memory allocated by <code>T</code> objects). +If we now replace <code>T</code> by some instantiation +<code>flyweight<T,...></code>, the resulting memory consumption +will be +</p> + +<blockquote> +<i>S<sub>F</sub></i> = +<i>N</i>·<i>P</i> + <i>M</i>·(<i>T</i> + <i>overhead</i>), +</blockquote> + +<p> +where <i>P</i> is <code>sizeof(flyweight<T,...>)</code>, typically+equal to <code>sizeof(void*)</code>, as seen <a href="#flyweight_size">before</a>.
+The ratio <i>S<sub>F</sub></i> / <i>S</i> is then +</p> + +<blockquote> +<i>S<sub>F</sub></i> / <i>S</i> =+(<i>P</i> / <i>T</i>)+ (<i>M</i> / <i>N</i>)(1 + <i>overhead</i> / <i>T</i>).
+</blockquote> + +<p> +<i>S<sub>F</sub></i> / <i>S</i> tends to its minimum, <i>P</i> / <i>T</i>, +as <i>M</i> / <i>N</i> tends to 0, i.e. when the degree of value redundancy+among <code>T</code> objects grows higher. On the other hand, the worst possible case +<i>S<sub>F</sub></i> / <i>S</i> = 1 + (<i>P</i> + <i>overhead</i>) / <i>T</i> +happens when <i>M</i> / <i>N</i> = 1, that is, if there is no value redundancy at all; in this situation there is
+no point in applying the flyweight pattern in the first place. +</p> + +<p align="center">+<img src="memory.png" alt="relative memory consumption of Boost.Flyweight as a function of value diversity"
+width="446" height="411"><br>+<b>Fig. 1: Relative memory consumption of Boost.Flyweight as a function of value diversity.</b>
+</p> + +<h2> +<a name="time">Time efficiency</a> +</h2> + +<p>+The introduction of the flyweight pattern involves an extra level of indirection +that, in general, results in some execution overhead when accessing the values. On +the other hand, manipulation of flyweight objects is considerably faster than
+moving around the heavy values they stand for. We analyze qualitatively the+execution overheads or improvements associated to the different usage contexts
+of Boost.Flyweight. +</p> + +<h3><a name="initialization">Initialization</a></h3> + +<p>+As compared with the initialization an object of type <code>T</code>, constructing +a <code>flyweight<T></code> performs important extra work like looking +up the value in the flyweight factory and inserting it if it is not present.
+So, construction of flyweights (other than copy construction, which is +cheap), is expected to be noticeably slower than the construction of the +underlying type <code>T</code>. Much of the time spent at constructing +the associated <code>T</code> value proper can be saved, however, by +using <a href="tutorial/key_value.html">key-value flyweights</a>. +</p> + +<h3><a name="assignment">Assignment</a></h3> + +<p> +Assignment of flyweight objects is extremely fast, as it only involves+assigning an internal handle type used to refer to the shared value. Moreover,
+assignment of <code>flyweight</code> objects never throws. Assignment time+is influenced by the type of <a href="tutorial/configuration.html#tracking">tracking
+policy</a> used; in this regard,+<a href="tutorial/configuration.html#no_tracking"><code>no_tracking</code></a>
+is the fastest option. +</p> + +<h3><a name="equality_comparison">Equality comparison</a></h3> + +<p> +Comparing two <code>flyweight</code> objects for equality reduces to +checking that the <i>addresses</i> of the values they are associated to +are equal; in general, this operation is much faster than comparing the+underlying values. This aspect is of particular relevance when the flyweight
+objects stand for complex values like those arising in the application of +the <a href="examples.html#example3"><i>composite pattern</i></a>. +</p> + +<h3><a name="value_access">Value access</a></h3> + +<p>+The conversion from <code>flyweight<T></code> to <code>const T&</code>
+relies on a level of indirection relating the flyweight objects to the +values they are associated to; so, value access is expected to be slower +when using Boost.Flyweight as compared to using the associated values +directly. This overhead, however, can be masked by an indirect improvement+resulting from locality and cache effects: as the set of different <code>T</code>
+values handled by an instantiation of <code>flyweight<T></code> is +generally much smaller than the equivalent family of <code>T</code> objects +when Boost.Flyweight is not used, active values can fit better +into the processor cache. +</p> + +<h2><a name="results">Experimental results</a></h2> + +<p>+A <a href="examples.html#example6">profiling program</a> was devised to test +the space and time efficiency of different instantiations of <code>flyweight</code> +against a base situation not using Boost.Flyweight. The profiled scenarios are:
+<ol> + <li><code>std::string</code>.</li>+ <li><code>flyweight<std::string></code> with default configuration aspects + (<a href="tutorial/configuration.html#hashed_factory"><code>hashed_factory</code></a>, + <a href="tutorial/configuration.html#refcounted"><code>refcounted</code></a> tracking, + <a href="tutorial/configuration.html#simple_locking"><code>simple_locking</code></a>).
+ </li>+ <li><code>flyweight<std::string,<a href="tutorial/configuration.html#no_tracking"><code>no_tracking</code></a>></code>.</li> + <li><code>flyweight<std::string,<a href="tutorial/configuration.html#set_factory"><code>set_factory</code></a>></code>.</li> + <li><code>flyweight<std::string,<a href="tutorial/configuration.html#set_factory"><code>set_factory</code></a>,<a href="tutorial/configuration.html#no_tracking"><code>no_tracking</code></a>></code>.</li>
+</ol> +</p> + +<p>+Actually the types tested are not exactly those listed above, but instrumented
+versions that keep track of the allocated memory for profiling purposes.+The program parses a text file into an array of words and then perform various +manipulations involving the different context usages of Boost.Flyweight discussed
+<a href="#time">previously</a>. As our text file we have used the +<a href="http://www.gutenberg.org/dirs/etext99/2donq10.txt";>plain text</a>+version of Project Gutenberg edition of <a href="http://www.gutenberg.org/etext/2000";><i>Don
+Quijote</i></a> (2.04 MB). +</p> + +<h3><a name="msvc_80">Microsoft Visual C++ 8.0</a></h3> + +<p>+The program was built with default release settings and <code>_SECURE_SCL=0</code>. +Tests were run under Windows XP in a machine equipped with an Intel Core 2 Duo T5500
+processor and 1 GB of RAM. +</p> + +<h4><a name="msvc_80_memory">Memory</a></h4> + +<p align="center"> +<img src="memory_msvc_80.png" alt="memory consumption (MB), MSVC++ 8.0" +width="798" height="322"><br> +<b>Fig. 2: Memory consumption, MSVC++ 8.0. Values in MB.</b> +</p> + +<p> +The results show the memory consumption figures for the different profiled +scenarios. +The standard library implementation of MSVC++ 8.0 features the so-called +small buffer optimization for strings, by which <code>std::string</code> +objects hold a small buffer that can be used when the string is short,+thus avoding dynamic allocations. This results in <code>sizeof(std::string)</code> +being quite high, 28 bytes. In our particular test strings are almost always +held in the small buffer, so the minimum <a href="#overall_memory"><i>S<sub>F</sub></i> / <i>S</i></a>
+achievable is 4/28 = 14.3%, which is quite close to the experimental +results, given that the memory devoted to storage of shared values +is residual (around 3% of total memory) due to the high word redundancy +of the text source. +</p> + +<h4><a name="msvc_80_time">Execution time</a></h4> + +<p align="center"> +<img src="time_msvc_80.png" alt="execution time (s), MSVC++ 8.0" +width="820" height="324"><br> +<b>Fig. 3: Execution time, MSVC++ 8.0. Values in seconds.</b> +</p> + +<p> +The figure displays execution times for the profiled scenarios in different +usage contexts. In accordance with our previous+<a href="#time">qualitative analysis</a>, initialization of <code>flyweight</code>s +carries an important overhead with respect to the base case scenario (between 10% and 40%
+of additional execution time), while the other usage contexts +(assignment, equality comparison and value access) have performance gains, +with speedup factors of up to 14 in some cases. The use of a+<a href="tutorial/configuration.html#refcounted"><code>refcounted</code></a>
+tracking policy introduces penalties with respect to+<a href="tutorial/configuration.html#no_tracking"><code>no_tracking</code></a>
+in initialization and assignment, but has no effect in equality comparison +and value access. +</p> + +<h3><a name="gcc_344">GNU GCC 3.4.4</a></h3> + +<p> +The Cygwin/MinGW version of the compiler was used, with command options +<code>-ftemplate-depth-128 -O3 -finline-functions -DNDEBUG</code>.+Tests were run under a Cygwin terminal in the same machine as <a href="#msvc_80">before</a>.
+</p> + +<h4><a name="gcc_344_memory">Memory</a></h4> + +<p align="center"> +<img src="memory_gcc_344.png" alt="memory consumption (MB), GCC 3.4.4" +width="798" height="322"><br> +<b>Fig. 4: Memory consumption, GCC 3.4.4. Values in MB.</b> +</p> + +<p> +The standard library used by GCC 3.4.4 implements <code>std::string</code>+using <a href="http://en.wikipedia.org/wiki/Copy-on-write";>copy-on-write</a>
+optimization techniques, which leads to very small value redundancy for +some usage patterns. This explains why the memory reduction achieved +by Boost.Flyweight is so poor in this case. Other contexts where assignment +is much less used than direct construction will favor Boost.Flyweight +over plain copy-on-write <code>std::string</code>s. +</p> + +<h4><a name="gcc_344_time">Execution time</a></h4> + +<p align="center"> +<img src="time_gcc_344.png" alt="execution time (s), GCC 3.4.4" +width="820" height="324"><br> +<b>Fig. 5: Execution time, GCC 3.4.4. Values in seconds.</b> +</p> + +<p> +Relative performance figures are similar to those obtained for +<a href="#msvc_80_time">MSVC++ 8.0</a>, although some of the +speedups achieved by Boost.Flyweight are higher here (×25 +in equality comparison and up to ×100 in assignment when+<a href="tutorial/configuration.html#no_tracking"><code>no_tracking</code></a>
+is in effect). +</p> + +<h2><a name="conclusions">Conclusions</a></h2> + +<p> +The introduction of Boost.Flyweight in application scenarios with very +high value redundancy yields important reductions in memory consumption: +this is especially relevant when data volume approaches the limits of +physical memory in the machine, since Boost.Flyweight can avoid virtual +memory thrashing thus making the application viable. We have shown +how to estimate the achievable reduction in memory consumption from +some basic value statistics and knowledge of the <code>flyweight</code> +configuration aspects being used. +</p> + +<p> +Boost.Flyweight can also accelerate execution times in areas other than +object initialization, due to the fastest manipulation of small +flyweight objects and to locality and cache effects arising from the +drastic reduction of the set of allocated values. +</p> + +<hr> ++<div class="prev_link"><a href="reference/tracking.html"><img src="prev.gif" alt="tracking policies" border="0"><br>
+Tracking policies +</a></div>+<div class="up_link"><a href="index.html"><img src="up.gif" alt="index" border="0"><br>
+Index +</a></div>+<div class="next_link"><a href="examples.html"><img src="next.gif" alt="examples" border="0"><br>
+Examples +</a></div><br clear="all" style="clear: all;"> +<br clear="all" style="clear: all;"> + +<br> + +<p>Revised December 2nd 2008</p> + +<p>© Copyright 2006-2008 Joaquín M López Muñoz. +Distributed under the Boost Software+License, Version 1.0. (See accompanying file <a href="../../../LICENSE_1_0.txt"> +LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt";>
+http://www.boost.org/LICENSE_1_0.txt</a>) +</p> + +</body> +</html> Added: trunk/libs/flyweight/doc/prev.gif ============================================================================== Binary file. No diff available. Added: trunk/libs/flyweight/doc/reference/factories.html ============================================================================== --- (empty file)+++ trunk/libs/flyweight/doc/reference/factories.html Tue Feb 24 22:16:26 2009
@@ -0,0 +1,583 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN"> + +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Boost.Flyweight Documentation - Factories reference</title> +<link rel="stylesheet" href="../style.css" type="text/css"> +<link rel="start" href="../index.html"> +<link rel="prev" href="tags.html"> +<link rel="up" href="index.html"> +<link rel="next" href="holders.html"> +</head> + +<body> +<h1><img src="../../../../boost.png" alt="Boost logo" align= +"middle" width="277" height="86">Boost.Flyweight +Factories reference</h1> ++<div class="prev_link"><a href="tags.html"><img src="../prev.gif" alt="tags" border="0"><br>
+Tags +</a></div>+<div class="up_link"><a href="index.html"><img src="../up.gif" alt="Boost.Flyweight reference" border="0"><br>
+Boost.Flyweight reference +</a></div>+<div class="next_link"><a href="holders.html"><img src="../next.gif" alt="holders" border="0"><br>
+Holders +</a></div><br clear="all" style="clear: all;"> + +<hr> + +<h2>Contents</h2> + +<ul> + <li><a href="#factory">Factories and factory specifiers</a></li> + <li><a href="#factory_tag_synopsis">Header + <code>"boost/flyweight/factory_tag.hpp"</code> synopsis</a> + <ul>+ <li><a href="#is_factory">Class template <code>is_factory</code></a></li> + <li><a href="#factory_construct">Class template <code>factory</code></a></li>
+ </ul> + </li> + <li><a href="#hashed_factory_fwd_synopsis">Header + <code>"boost/flyweight/hashed_factory_fwd.hpp"</code> synopsis</a> + </li> + <li><a href="#hashed_factory_synopsis">Header + <code>"boost/flyweight/hashed_factory.hpp"</code> synopsis</a> + <ul>+ <li><a href="#hashed_factory_class">Class template <code>hashed_factory_class</code></a></li> + <li><a href="#hashed_factory">Class template <code>hashed_factory</code></a></li>
+ </ul> + </li> + <li><a href="#set_factory_fwd_synopsis">Header + <code>"boost/flyweight/set_factory_fwd.hpp"</code> synopsis</a> + </li> + <li><a href="#set_factory_synopsis">Header + <code>"boost/flyweight/set_factory.hpp"</code> synopsis</a> + <ul>+ <li><a href="#set_factory_class">Class template <code>set_factory_class</code></a></li> + <li><a href="#set_factory">Class template <code>set_factory</code></a></li>
+ </ul> + </li> + <li><a href="#assoc_container_factory_fwd_synopsis">Header+ <code>"boost/flyweight/assoc_container_factory_fwd.hpp"</code> synopsis</a>
+ </li> + <li><a href="#assoc_container_factory_synopsis">Header + <code>"boost/flyweight/assoc_container_factory.hpp"</code> synopsis</a> + <ul>+ <li><a href="#assoc_container_factory_class">Class template <code>assoc_container_factory_class</code></a></li> + <li><a href="#assoc_container_factory">Class template <code>assoc_container_factory</code></a></li>
+ </ul> + </li> +</ul> + +<h2><a name="factory">Factories and factory specifiers</a></h2> + +<p> +Given a type <code>Key</code> and an+<a href="http://www.sgi.com/tech/stl/Assignable.html";><code>Assignable</code></a> +type <code>Entry</code> implicitly convertible to <code>const Key&</code>, a
+<i>factory of <code>Entry</code> elements</i> (implicitly associated to +<code>Key</code>) is a+<a href="http://www.sgi.com/tech/stl/DefaultConstructible.html";><code>Default +Constructible</code></a> entity able to store and retrieve immutable elements of
+type <code>Entry</code>. A factory is governed by an associated equivalence +relation defined on <code>Key</code> so that no two +<code>Entry</code> objects convertible to equivalent <code>Key</code>s +can be stored simultaneously in the factory. Different factory types can +use different equivalence relations. +</p> + +<p> +In the following table, <code>Factory</code> is a factory of elements+of type <code>Entry</code>, <code>f</code> denotes an object of type <code>Factory</code>, +<code>x</code> is an object of type <code>Entry</code> and <code>h</code> is a
+value of <code>Factory::handle_type</code>. +</p> + +<p align="center"> +<table cellspacing="0"> + <caption><b>Factory requirements.</b></caption> +<tr> + <th align="center">expression</th> + <th align="center">return type</th> + <th align="center">assertion/note<br>pre/post-condition</th> +</tr> +<tr> + <td><code>Factory::handle_type</code></td> + <td>handle to elements of type <code>T</code><br> + stored in the factory + </td> + <td><code>handle_type</code> is+ <a href="http://www.sgi.com/tech/stl/Assignable.html";><code>Assignable</code></a>
+ and its copy and<br> + assignment operations never throw an exception. + </td> +</tr> +<tr class="odd_tr"> + <td><code>f.insert(x);</code></td> + <td><code>handle_type</code></td>+ <td>Inserts a copy of <code>x</code> if there is no equivalent entry in <code>f</code>;<br>
+ returns a handle to the inserted or equivalent element. + </td> +</tr> +<tr> + <td><code>f.erase(h);</code></td> + <td><code>void</code></td> + <td>Erases the element associated to <code>h</code>.<br> + This operation does not throw. + </td> +</tr> +<tr class="odd_tr"> + <td><code>f.entry(h);</code></td> + <td><code>const Entry&</code></td> + <td>Returns a reference to the element associated to <code>h</code>.<br> + This operation does not throw. + </td> +</tr> +</table> +</p> + +<p>+Additionally to the basic thread safety guarantee which is implicitly assumed
+for most classes including the majority of components of the+C++ standard library, it is required that the member function <code>entry</code>
+can be invoked simultaneously from different threads, even in the presence+of concurrent accesses to <code>insert</code> and <code>erase</code> (as long
+as the entry returned by <code>entry</code> is not the one which is being +erased). +</p> + +<p> +A type <code>S</code> is said to be a <i>factory specifier</i> if: +<ol> + <li>One of the following conditions is satisfied: + <ol type="a">+ <li><a href="#is_factory"><code>is_factory<S>::type</code></a> is + <a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a>,</li> + <li><code>S</code> is of the form <a href="#factory_construct"><code>factory<S'></code></a>.</li>
+ </ol> + </li> + <li><code>S</code>, or <code>S'</code> if (b) applies, is an+ <a href="../../../mpl/doc/refmanual/lambda-expression.html"><code>MPL Lambda + Expression</code></a> such that invoking it with types (<code>Entry</code>, + <code>Key</code>) resolves to a factory type of <code>Entry</code> elements
+ (implicitly associated to <code>Key</code>). + </li> +</ol> +</p> + +<h2><a name="factory_tag_synopsis">Header+<a href="../../../../boost/flyweight/factory_tag.hpp"><code>"boost/flyweight/factory_tag.hpp"</code></a> synopsis</a></h2>
+ +<blockquote><pre>+<span class=keyword>namespace</span> <span class=identifier>boost</span><span class=special>{</span>
++<span class=keyword>namespace</span> <span class=identifier>flyweights</span><span class=special>{</span>
++<span class=keyword>struct</span> <span class=identifier>factory_marker</span><span class=special>;</span>
++<span class=keyword>template</span><span class=special><</span><span class=keyword>typename</span> <span class=identifier>T</span><span class=special>></span> +<span class=keyword>struct</span> <span class=identifier>is_factory</span><span class=special>;</span>
++<span class=keyword>template</span><span class=special><</span><span class=keyword>typename</span> <span class=identifier>T</span><span class=special>></span> +<span class=keyword>struct</span> <span class=identifier>factory</span><span class=special>;</span>
++<span class=special>}</span> <span class=comment>// namespace boost::flyweights</span>
+ +<span class=special>}</span> <span class=comment>// namespace boost</span> +</pre></blockquote> + +<h3><a name="is_factory">Class template <code>is_factory</code></a></h3> + +<p> +Unless specialized by the user, <code>is_factory<T>::type</code> is+<a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a>
+if <code>T</code> is derived from <code>factory_marker</code>, and it is+<a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::false_</code></a>
+otherwise. +</p> ++<h3><a name="factory_construct">Class template <code>factory</code></a></h3>
+ +<p> +<code>factory<T></code> is a syntactic construct meant to indicate +that <code>T</code> is a factory specifier without resorting to the +mechanisms provided by the <code>is_factory</code> class template. +</p> + +<h2><a name="hashed_factory_fwd_synopsis">Header+<a href="../../../../boost/flyweight/hashed_factory_fwd.hpp"><code>"boost/flyweight/hashed_factory_fwd.hpp"</code></a> synopsis</a></h2>
+ +<blockquote><pre>+<span class=keyword>namespace</span> <span class=identifier>boost</span><span class=special>{</span>
++<span class=keyword>namespace</span> <span class=identifier>flyweights</span><span class=special>{</span>
+ +<span class=keyword>template</span><span class=special><</span>+ <span class=keyword>typename</span> <span class=identifier>Entry</span><span class=special>,</span><span class=keyword>typename</span> <span class=identifier>Key</span><span class=special>,</span> + <span class=keyword>typename</span> <span class=identifier>Hash</span><span class=special>=</span><b>implementation defined</b><span class=special>,</span> + <span class=keyword>typename</span> <span class=identifier>Pred</span><span class=special>=</span><b>implementation defined</b><span class=special>,</span> + <span class=keyword>typename</span> <span class=identifier>Allocator</span><span class=special>=</span><b>implementation defined</b>
+<span class=special>></span>+<span class=keyword>class</span> <span class=identifier>hashed_factory_class</span><span class=special>;</span>
+ +<span class=keyword>template</span><span class=special><</span>+ <span class=keyword>typename</span> <span class=identifier>Hash</span><span class=special>=</span><b>implementation defined</b><span class=special>,</span> + <span class=keyword>typename</span> <span class=identifier>Pred</span><span class=special>=</span><b>implementation defined</b><span class=special>,</span> + <span class=keyword>typename</span> <span class=identifier>Allocator</span><span class=special>=</span><b>implementation defined</b>
+<span class=special>></span>+<span class=keyword>struct</span> <span class=identifier>hashed_factory</span><span class=special>;</span>
++<span class=special>}</span> <span class=comment>// namespace boost::flyweights</span>
+ +<span class=special>}</span> <span class=comment>// namespace boost</span> +</pre></blockquote> + +<p> +<code>hashed_factory_fwd.hpp</code> forward declares the class templates +<a href="#hashed_factory_class"><code>hashed_factory_class</code></a> +and <a href="#hashed_factory"><code>hashed_factory</code></a>. +</p> + +<h2><a name="hashed_factory_synopsis">Header+<a href="../../../../boost/flyweight/hashed_factory.hpp"><code>"boost/flyweight/hashed_factory.hpp"</code></a> synopsis</a></h2>
++<h3><a name="hashed_factory_class">Class template <code>hashed_factory_class</code></a></h3>
+ +<p>+<code>hashed_factory_class</code> is a <a href="#factory"><code>Factory</code></a>
+implemented with a hashed container. +</p> + +<blockquote><pre> +<span class=keyword>template</span><span class=special><</span>+ <span class=keyword>typename</span> <span class=identifier>Entry</span><span class=special>,</span><span class=keyword>typename</span> <span class=identifier>Key</span><span class=special>,</span> + <span class=keyword>typename</span> <span class=identifier>Hash</span><span class=special>,</span><span class=keyword>typename</span> <span class=identifier>Pred</span><span class=special>,</span><span class=keyword>typename</span> <span class=identifier>Allocator</span>
+<span class=special>></span>+<span class=keyword>class</span> <span class=identifier>hashed_factory_class</span>
+<span class=special>{</span> +<span class=keyword>public</span><span class=special>:</span>+ <span class=keyword>typedef</span> <b>implementation defined</b> <span class=identifier>handle_type</span><span class=special>;</span>
++ <span class=identifier>handle_type</span> <span class=identifier>insert</span><span class=special>(</span><span class=keyword>const</span> <span class=identifier>Entry</span><span class=special>&</span> <span class=identifier>x</span><span class=special>);</span> + <span class=keyword>void</span> <span class=identifier>erase</span><span class=special>(</span><span class=identifier>handle_type</span> <span class=identifier>h</span><span class=special>);</span> + <span class=keyword>const</span> <span class=identifier>Entry</span><span class=special>&</span> <span class=identifier>entry</span><span class=special>(</span><span class=identifier>handle_type</span> <span class=identifier>h</span><span class=special>);</span>
+<span class=special>};</span> +</pre></blockquote> + +<p> +<code>Hash</code> is a+<a href="http://www.sgi.com/tech/stl/DefaultConstructible.html";><code>Default
+Constructible</code></a>+<a href="http://www.sgi.com/tech/stl/UnaryFunction.html";><code>Unary Function</code></a>
+taking a single argument of type <code>Key</code> and returning a +value of type <code>std::size_t</code> in the range +<code>[0, std::numeric_limits<std::size_t>::max())</code>. +<code>Pred</code> is a+<a href="http://www.sgi.com/tech/stl/DefaultConstructible.html";><code>Default
+Constructible</code></a> +<a href="http://www.sgi.com/tech/stl/BinaryPredicate.html";> +<code>Binary Predicate</code></a> inducing an equivalence relation +on elements of <code>Key</code>. It is required that +a <code>Hash</code> object return the same value for objects +equivalent under <code>Pred</code>. +The equivalence relation on <code>Key</code> associated to the factory is +that induced by <code>Pred</code>. +The default arguments for <code>Hash</code> and <code>Pred</code> are+<a href="../../../functional/hash/index.html"><code>boost::hash<Key></code></a>
+and <code>std::equal_to<Key></code>, respectively. +<code>Allocator</code> must be an allocator of <code>Entry</code> objects+satisfying the associated C++ requirements at <b>[lib.allocator.requirements]</b>. +The default argument is <code>std::allocator<Entry></code>. The internal
+hashed container upon which <code>hashed_factory_class</code> is based is +constructed with default initialized objects of type <code>Hash</code>, +<code>Pred</code> and <code>Allocator</code>. +</p> ++<h3><a name="hashed_factory">Class template <code>hashed_factory</code></a></h3>
+ +<p>+<a href="#factory"><code>Factory Specifier</code></a> for <a href="#hashed_factory_class"><code>hashed_factory_class</code></a>.
+</p> + +<blockquote><pre>+<span class=keyword>template</span><span class=special><</span><span class=keyword>typename</span> <span class=identifier>Hash</span><span class=special>,</span><span class=keyword>typename</span> <span class=identifier>Pred</span><span class=special>,</span><span class=keyword>typename</span> <span class=identifier>Allocator</span><span class=special>></span> +<span class=keyword>struct</span> <span class=identifier>hashed_factory</span><span class=special>;</span>
+</pre></blockquote> + +<p> +<code>hashed_factory<Hash,Pred,Allocator></code> is an+<a href="../../../mpl/doc/refmanual/metafunction-class.html"><code>MPL Metafunction
+Class</code></a> such that the type +</p> + +<blockquote><pre>+<span class=identifier>boost</span><span class=special>::</span><span class=identifier>mpl</span><span class=special>::</span><span class=identifier>apply</span><span class=special><</span> + <span class=identifier>hashed_factory</span><span class=special><</span><span class=identifier>Hash</span><span class=special>,</span><span class=identifier>Pred</span><span class=special>,</span><span class=identifier>Allocator</span><span class=special>>,</span> + <span class=identifier>Entry</span><span class=special>,</span><span class=identifier>Key</span>
+<span class=special>>::</span><span class=identifier>type</span> +</pre></blockquote> + +<p> +is the same as +</p> + +<blockquote><pre>+<span class=identifier>boost</span><span class=special>::</span><span class=identifier>mpl</span><span class=special>::</span><span class=identifier>apply</span><span class=special><</span> + <span class=identifier>hashed_factory_class</span><span class=special><</span><span class=identifier>boost</span><span class=special>::</span><span class=identifier>mpl</span><span class=special>::</span><span class=identifier>_1</span><span class=special>,</span><span class=identifier>boost</span><span class=special>::</span><span class=identifier>mpl</span><span class=special>::</span><span class=identifier>_2</span><span class=special>,</span><span class=identifier>Hash</span><span class=special>,</span><span class=identifier>Pred</span><span class=special>,</span><span class=identifier>Allocator</span><span class=special>>,</span> + <span class=identifier>Entry</span><span class=special>,</span><span class=identifier>Key</span>
+<span class=special>>::</span><span class=identifier>type</span> +</pre></blockquote> + +<p>+This implies that <code>Hash</code>, <code>Pred</code> and <code>Allocator</code>
+can be +<a href="../../../mpl/doc/refmanual/placeholder-expression.html"><code>MPL +Placeholder Expressions</code></a> resolving to the actual types used by +<code>hashed_factory_class</code>. +</p> + +<h2><a name="set_factory_fwd_synopsis">Header+<a href="../../../../boost/flyweight/set_factory_fwd.hpp"><code>"boost/flyweight/set_factory_fwd.hpp"</code></a> synopsis</a></h2>
+ +<blockquote><pre>+<span class=keyword>namespace</span> <span class=identifier>boost</span><span class=special>{</span>
++<span class=keyword>namespace</span> <span class=identifier>flyweights</span><span class=special>{</span>
+ +<span class=keyword>template</span><span class=special><</span>+ <span class=keyword>typename</span> <span class=identifier>Entry</span><span class=special>,</span><span class=keyword>typename</span> <span class=identifier>Key</span><span class=special>,</span> + <span class=keyword>typename</span> <span class=identifier>Compare</span><span class=special>=</span><b>implementation defined</b><span class=special>,</span> + <span class=keyword>typename</span> <span class=identifier>Allocator</span><span class=special>=</span><b>implementation defined</b>
+<span class=special>></span>+<span class=keyword>class</span> <span class=identifier>set_factory_class</span><span class=special>;</span>
+ +<span class=keyword>template</span><span class=special><</span>+ <span class=keyword>typename</span> <span class=identifier>Compare</span><span class=special>=</span><b>implementation defined</b><span class=special>,</span> + <span class=keyword>typename</span> <span class=identifier>Allocator</span><span class=special>=</span><b>implementation defined</b>
+<span class=special>></span>+<span class=keyword>struct</span> <span class=identifier>set_factory</span><span class=special>;</span>
++<span class=special>}</span> <span class=comment>// namespace boost::flyweights</span>
+ +<span class=special>}</span> <span class=comment>// namespace boost</span> +</pre></blockquote> + +<p> +<code>set_factory_fwd.hpp</code> forward declares the class templates +<a href="#set_factory_class"><code>set_factory_class</code></a> +and <a href="#set_factory"><code>set_factory</code></a>. +</p> + +<h2><a name="set_factory_synopsis">Header+<a href="../../../../boost/flyweight/set_factory.hpp"><code>"boost/flyweight/set_factory.hpp"</code></a> synopsis</a></h2>
++<h3><a name="set_factory_class">Class template <code>set_factory_class</code></a></h3>
+ +<p>+<code>set_factory_class</code> is a <a href="#factory"><code>Factory</code></a>
+implemented on top of an orderded associative container. +</p> + +<blockquote><pre> +<span class=keyword>template</span><span class=special><</span>+ <span class=keyword>typename</span> <span class=identifier>Entry</span><span class=special>,</span><span class=keyword>typename</span> <span class=identifier>Key</span><span class=special>,</span> + <span class=keyword>typename</span> <span class=identifier>Compare</span><span class=special>,</span><span class=keyword>typename</span> <span class=identifier>Allocator</span>
+<span class=special>></span>+<span class=keyword>class</span> <span class=identifier>set_factory_class</span>
+<span class=special>{</span> +<span class=keyword>public</span><span class=special>:</span>+ <span class=keyword>typedef</span> <b>implementation defined</b> <span class=identifier>handle_type</span><span class=special>;</span>
++ <span class=identifier>handle_type</span> <span class=identifier>insert</span><span class=special>(</span><span class=keyword>const</span> <span class=identifier>Entry</span><span class=special>&</span> <span class=identifier>x</span><span class=special>);</span> + <span class=keyword>void</span> <span class=identifier>erase</span><span class=special>(</span><span class=identifier>handle_type</span> <span class=identifier>h</span><span class=special>);</span> + <span class=keyword>const</span> <span class=identifier>Entry</span><span class=special>&</span> <span class=identifier>entry</span><span class=special>(</span><span class=identifier>handle_type</span> <span class=identifier>h</span><span class=special>);</span>
+<span class=special>};</span> +</pre></blockquote> + +<p> +<code>Compare</code> is a+<a href="http://www.sgi.com/tech/stl/DefaultConstructible.html";><code>Default
+Constructible</code></a> +<a href="http://www.sgi.com/tech/stl/StrictWeakOrdering.html";>+<code>Strict Weak Ordering</code></a> on <code>Key</code>. Two <code>Key</code>s
+<code>x</code> and <code>y</code> are considered equivalent if+<code>!c(x,y)&&!c(y,x)</code> for <code>c</code> of type <code>Compare</code>. +The default argument of <code>Compare</code> is <code>std::less<Key></code>
+<code>Allocator</code> must be an allocator of <code>Entry</code> objects+satisfying the associated C++ requirements at <b>[lib.allocator.requirements]</b>. +The default argument is <code>std::allocator<Entry></code>. The internal
+container upon which <code>set_factory_class</code> is based is +constructed with default initialized objects of type <code>Compare</code> +and <code>Allocator</code>. +</p> + +<h3><a name="set_factory">Class template <code>set_factory</code></a></h3> + +<p>+<a href="#factory"><code>Factory Specifier</code></a> for <a href="#set_factory_class"><code>set_factory_class</code></a>.
+</p> + +<blockquote><pre>+<span class=keyword>template</span><span class=special><</span><span class=keyword>typename</span> <span class=identifier>Compare</span><span class=special>,</span><span class=keyword>typename</span> <span class=identifier>Allocator</span><span class=special>></span> +<span class=keyword>struct</span> <span class=identifier>set_factory</span><span class=special>;</span>
+</pre></blockquote> + +<p> +<code>set_factory<Compare,Allocator></code> is an+<a href="../../../mpl/doc/refmanual/metafunction-class.html"><code>MPL Metafunction
+Class</code></a> such that the type +</p> + +<blockquote><pre>+<span class=identifier>boost</span><span class=special>::</span><span class=identifier>mpl</span><span class=special>::</span><span class=identifier>apply</span><span class=special><</span> + <span class=identifier>set_factory</span><span class=special><</span><span class=identifier>Compare</span><span class=special>,</span><span class=identifier>Allocator</span><span class=special>>,</span> + <span class=identifier>Entry</span><span class=special>,</span><span class=identifier>Key</span>
+<span class=special>>::</span><span class=identifier>type</span> +</pre></blockquote> + +<p> +is the same as +</p> + +<blockquote><pre>+<span class=identifier>boost</span><span class=special>::</span><span class=identifier>mpl</span><span class=special>::</span><span class=identifier>apply</span><span class=special><</span> + <span class=identifier>set_factory_class</span><span class=special><</span><span class=identifier>boost</span><span class=special>::</span><span class=identifier>mpl</span><span class=special>::</span><span class=identifier>_1</span><span class=special>,</span><span class=identifier>boost</span><span class=special>::</span><span class=identifier>mpl</span><span class=special>::</span><span class=identifier>_2</span><span class=special>,</span><span class=identifier>Compare</span><span class=special>,</span><span class=identifier>Allocator</span><span class=special>>,</span> + <span class=identifier>Entry</span><span class=special>,</span><span class=identifier>Key</span>
+<span class=special>>::</span><span class=identifier>type</span> +</pre></blockquote> + +<p> +This implies that <code>Compare</code> and <code>Allocator</code> +can be +<a href="../../../mpl/doc/refmanual/placeholder-expression.html"><code>MPL +Placeholder Expressions</code></a> resolving to the actual types used by +<code>set_factory_class</code>. +</p> + +<h2><a name="assoc_container_factory_fwd_synopsis">Header+<a href="../../../../boost/flyweight/assoc_container_factory_fwd.hpp"><code>"boost/flyweight/assoc_container_factory_fwd.hpp"</code></a> synopsis</a></h2>
+ +<blockquote><pre>+<span class=keyword>namespace</span> <span class=identifier>boost</span><span class=special>{</span>
++<span class=keyword>namespace</span> <span class=identifier>flyweights</span><span class=special>{</span>
++<span class=keyword>template</span><span class=special><</span><span class=keyword>typename</span> <span class=identifier>Container</span><span class=special>></span> +<span class=keyword>class</span> <span class=identifier>assoc_container_factory_class</span><span class=special>;</span>
++<span class=keyword>template</span><span class=special><</span><span class=keyword>typename</span> <span class=identifier>ContainerSpecifier</span><span class=special>></span> +<span class=keyword>struct</span> <span class=identifier>assoc_container_factory</span><span class=special>;</span>
++<span class=special>}</span> <span class=comment>// namespace boost::flyweights</span>
+ +<span class=special>}</span> <span class=comment>// namespace boost</span> +</pre></blockquote> + +<p>+<code>assoc_container_factory_fwd.hpp</code> forward declares the class templates +<a href="#assoc_container_factory_class"><code>assoc_container_factory_class</code></a> +and <a href="#assoc_container_factory"><code>assoc_container_factory</code></a>.
+</p> + +<h2><a name="assoc_container_factory_synopsis">Header+<a href="../../../../boost/flyweight/assoc_container_factory.hpp"><code>"boost/flyweight/assoc_container_factory.hpp"</code></a> synopsis</a></h2>
++<h3><a name="assoc_container_factory_class">Class template <code>assoc_container_factory_class</code></a></h3>
+ +<p>+<code>assoc_container_factory_class</code> wraps a suitable associative container
+to provide a <a href="#factory"><code>Factory</code></a> interface. +</p> + +<blockquote><pre>+<span class=keyword>template</span><span class=special><</span><span class=keyword>typename</span> <span class=identifier>Container</span><span class=special>></span> +<span class=keyword>class</span> <span class=identifier>assoc_container_factory_class</span>
+<span class=special>{</span> +<span class=keyword>public</span><span class=special>:</span>+ <span class=keyword>typedef</span> <span class=keyword>typename</span> <span class=identifier>Container</span><span class=special>::</span><span class=identifier>iterator</span> <span class=identifier>handle_type</span><span class=special>;</span>
++ <span class=identifier>handle_type</span> <span class=identifier>insert</span><span class=special>(</span><span class=keyword>const</span> <span class=keyword>typename</span> <span class=identifier>Container</span><span class=special>::</span><span class=identifier>value_type</span><span class=special>&</span> <span class=identifier>x</span><span class=special>);</span> + <span class=keyword>void</span> <span class=identifier>erase</span><span class=special>(</span><span class=identifier>handle_type</span> <span class=identifier>h</span><span class=special>);</span> + <span class=keyword>const</span> <span class=keyword>typename</span> <span class=identifier>Container</span><span class=special>::</span><span class=identifier>value_type</span><span class=special>&</span> <span class=identifier>entry</span><span class=special>(</span><span class=identifier>handle_type</span> <span class=identifier>h</span><span class=special>);</span>
+<span class=special>};</span> +</pre></blockquote> + +<p>+<code>Container</code> must be an (ordered or unordered) associative container
+such that +<ol> + <li><code>Container::key_type</code> is the same as+ <code>Container::value_type</code> (which is the entry type associated to
+ the factory). + </li> + <li>Unique keys (rather than equivalent keys) are supported.</li> + <li><code>Container</code> is <i>stable</i>, i.e. its iterators are not + invalidated upon insert or erase operations.</li> +</ol>+The equivalence relation associated to <code>assoc_container_factory_class</code>
+is the one induced by <code>Container</code>. If equivalence of elements+of <code>Container::value_type</code> is determined solely on the basis of a
+type <code>value_type'</code> to which <code>value_type</code> is +implicitly convertible, then <code>assoc_container_factory_class</code> is+a factory of entries of type <code>value_type</code> implicitly associated to
+<code>value_type'</code>. For example, the instantiation +</p> + +<blockquote><pre>+<span class=identifier>assoc_container_factory_class</span><span class=special><</span> + <span class=identifier>std</span><span class=special>::</span><span class=identifier>set</span><span class=special><</span><span class=identifier>derived</span><span class=special>,</span><span class=identifier>std</span><span class=special>::</span><span class=identifier>less</span><span class=special><</span><span class=identifier>base</span><span class=special>></span> <span class=special>></span> <span class=comment>// derived inherits from base</span>
+<span class=special>></span> +</pre></blockquote> + +<p> +is a factory of <code>derived</code> elements implicitly associated to +<code>base</code>. +</p> + +<h3><a name="a ============================================================================== Diff truncated at 200k characters