[boost-doc-zh commit] r240 - no log message

  • From: codesite-noreply@xxxxxxxxxx
  • To: boost-doc-zh-notify@xxxxxxxxxxxxx
  • Date: Fri, 10 Apr 2009 11:11:32 +0000

Author: zengkun100
Date: Fri Apr 10 04:07:11 2009
New Revision: 240

Modified:
   trunk/libs/flyweight/doc/future_work.html
   trunk/libs/flyweight/doc/reference/factories.html
   trunk/libs/flyweight/doc/reference/holders.html
   trunk/libs/flyweight/doc/reference/locking.html
   trunk/libs/flyweight/doc/reference/tracking.html
   trunk/libs/flyweight/doc/release_notes.html
   trunk/libs/flyweight/doc/tutorial/extension.html
   trunk/libs/flyweight/doc/tutorial/index.html

Log:


Modified: trunk/libs/flyweight/doc/future_work.html
==============================================================================
--- trunk/libs/flyweight/doc/future_work.html   (original)
+++ trunk/libs/flyweight/doc/future_work.html   Fri Apr 10 04:07:11 2009
@@ -1,63 +1,97 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
-<html><head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
-<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>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
+<html>
+<head>

+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+
+  <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" height="86" width="277">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 style="" clear="all">
+</a></div>
+<br style="" clear="all">
+
 <br 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.
+and new Boost libraries. The following is a list of candidate additions.</p> +<p>Boost.Flyweight的后续版本会引入一些新的功能来满足用户的需要并且利用即将 到来的C++0x的特性和新的Boost库。以下是候选功能的一个列表。
 </p>

-<h2>Contents</h2>
+
+<h2>Contents &nbsp;目录</h2>
+

 <ul>
-  <li><a href="#instrospection">Introspection API</a></li>
+
+  <li><a href="#instrospection">Introspection API &nbsp;内省的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>
+
+ <li><a href="#rw_lock">Read/write locking policy &nbsp;读/写 锁定策略 </a></li>
+
+ <li><a href="#new_boost_libs">Integration with new Boost libraries &nbsp;与新的Boost库集成</a></li>
+
 </ul>

-<h2><a name="instrospection">Introspection API</a></h2>
+
+<h2><a name="instrospection">Introspection API &nbsp;内省的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:
+the following example:</p>
+<p>目前没有办法来访问一个<code>flyweight</code>实例的内部组件(工 厂,holder,等等),甚至连这些组件的类型都没法获得。通过这样一个API,可以像 下面这个例子那样来监视Boost.Flyweight的使用:
 </p>

-<blockquote><pre><span class="keyword">typedef</span> <span class="identifier">flyweight</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">fw_type</span><span class="special">;</span>
+
+<blockquote>
+ <pre><span class="keyword">typedef</span> <span class="identifier">flyweight</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</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">&lt;&lt;</span><span class="string">"factory used: "</span><span class="special">&lt;&lt;</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">()&lt;&lt;</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">&lt;&lt;</span><span class="string">"values stored: "</span><span class="special">&lt;&lt;</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">()&lt;&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
-</pre></blockquote>
+  </pre>
+</blockquote>
+

 <h2><a name="perfect_fwd">Perfect forwarding</a></h2>

+
 <p>
When constructing a <code>flyweight&lt;T&gt; object</code>, some spurious copies of objects of type <code>T</code> are incurred in the process of moving the value
@@ -66,10 +100,14 @@
 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.
+compilers begin to provide it.</p>
+<p>当构造一个<code>flyweight&lt;T&gt;</code>对象时,会产生类型 <code>T</code>的对象的拷贝,在移动这个<code></code>值到内部工厂的过程中。所 谓的<i><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2027.html#Perfect_Forwarding";><i>perfect +forwarding</i></a></i>,过就是说,在移动的过程中不产生临时拷贝,下一个C++标 准的版本中引入的<i>rvalue references</i>新类型会完美的解决这个问题。当编译器 开始支持的时候Boost.Flyweight将会使用这个特性。
 </p>

-<h2><a name="rw_lock">Read/write locking policy</a></h2>
+
+<h2><a name="rw_lock">Read/write locking policy &nbsp;读/写锁定策略 </a></h2>
+

 <p>
 The nature of the flyweight pattern implies that most accesses
@@ -83,41 +121,58 @@
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.
+locking actually improves performance.</p>
+<p>flyweight模式的性质暗示绝大多数对flyweight内部工厂的访问不会引起新的插 入,于是flyweight可以被看作是只读的。 这暗示着为了方便起见,可以使用一种基于 读/写锁的锁定策略,就像<a href="../../../doc/html/thread/synchronization.html#thread.synchronization.mutex_concepts.shared_lockable">Boost.Thread</a>里 提供的那种。实现一个锁定策略还要求扩展<a href="reference/factories.html#factory">工厂</a>的概念以支持纯粹的查找操作。 Tim Blechmann已经提供了这个想法的初级<a href="http://lists.boost.org/Archives/boost/2008/07/139414.php";>实现</a>。在 提交这个库扩展之前,有必要进行一个性能分析研究以确定读/写锁是不是真的提高了 性能。
 </p>

-<h2><a name="new_boost_libs">Integration with new Boost libraries</a></h2>
+
+<h2><a name="new_boost_libs">Integration with new Boost libraries &nbsp;与 新的Boost库集成</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.
+Boost.Flyweight.</p>
+<p>最近接纳的Boost库,比如<a href="http://lists.boost.org/boost-announce/2007/12/0149.php";>Boost.Functional/Forward</a>和 <a href="http://lists.boost.org/boost-announce/2007/12/0157.php";>Boost.Functional/Factory</a>将 来可能被用来替换一些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 style="" clear="all">
+</a></div>
 <br style="" clear="all">

+<br style="" clear="all">
+
+
 <br>

+
 <p>Revised September 1st 2008</p>

-<p>© Copyright 2006-2008 Joaquín M López Muñoz.
+
+<p>&copy; Copyright 2006-2008 Joaqu&iacute;n M L&oacute;pez Mu&ntilde;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>
\ No newline at end of file
+
+</body>
+</html>

Modified: trunk/libs/flyweight/doc/reference/factories.html
==============================================================================
--- trunk/libs/flyweight/doc/reference/factories.html   (original)
+++ trunk/libs/flyweight/doc/reference/factories.html Fri Apr 10 04:07:11 2009
@@ -1,234 +1,132 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
-<html><head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
+<html>
+<head>

-
-
-
-
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <title>Boost.Flyweight Documentation - Factories reference</title>


-
-
-
-
-
-
-
- <title>Boost.Flyweight Documentation - Factories reference</title><link rel="stylesheet" href="../style.css" type="text/css">
+  <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>

-
-
-  <link rel="next" href="holders.html"></head>
 <body>

-
-
<h1><img src="../../../../boost.png" alt="Boost logo" align="middle" height="86" width="277">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 style="" clear="all">

-
-
 <hr>
 <h2>Contents &nbsp;目录</h2>

-
-
 <ul>

-
-
   <li><a href="#factory">Factories and factory
 specifiers &nbsp;工厂和工厂描述符</a></li>

-
-
<li><a href="#factory_tag_synopsis">Header <code>"boost/flyweight/factory_tag.hpp"</code>
 synopsis &nbsp;头文件"boost/flyweight/factory_tag.hpp"大意</a>
-
-
     <ul>

-
-
- <li><a href="#is_factory">Class template <code>is_factory &nbsp;类模 板 is_factory</code></a></li>
-
-
+      <li><a href="#is_factory">Class template <code>is_factory
+&nbsp;类模板 is_factory</code></a></li>

       <li><a href="#factory_construct">Class
 template <code>factory &nbsp;类模板 factory</code></a></li>

-
-
-
-
     </ul>

-
-
   </li>

-
-
<li><a href="#hashed_factory_fwd_synopsis">Header <code>"boost/flyweight/hashed_factory_fwd.hpp"</code>
-synopsis &nbsp;头文件"boost/flyweight/hashed_factory_fwd.hpp"大意</a> </li>
-
-
+synopsis &nbsp;头文件"boost/flyweight/hashed_factory_fwd.hpp"大意</a>
+  </li>

<li><a href="#hashed_factory_synopsis">Header <code>"boost/flyweight/hashed_factory.hpp"</code>
 synopsis &nbsp;头文件"boost/flyweight/hashed_factory.hpp"大意</a>
-
-
     <ul>

-
-
       <li><a href="#hashed_factory_class">Class
-template <code>hashed_factory_class &nbsp;类模板 hashed_factory_class</code></a></li>
-
-
+template <code>hashed_factory_class &nbsp;类模板
+hashed_factory_class</code></a></li>

- <li><a href="#hashed_factory">Class template <code>hashed_factory 类 模板&nbsp; hashed_factory&nbsp;</code></a></li>
+      <li><a href="#hashed_factory">Class template <code>hashed_factory
+类模板&nbsp; hashed_factory&nbsp;</code></a></li>

-
-
-
-
     </ul>

-
-
   </li>

-
-
<li><a href="#set_factory_fwd_synopsis">Header <code>"boost/flyweight/set_factory_fwd.hpp"</code>
-synopsis &nbsp;头文件"boost/flyweight/set_factory_fwd.hpp"大意</a> </li>
-
-
+synopsis &nbsp;头文件"boost/flyweight/set_factory_fwd.hpp"大意</a>
+  </li>

<li><a href="#set_factory_synopsis">Header <code>"boost/flyweight/set_factory.hpp"</code>
 synopsis &nbsp;头文件"boost/flyweight/set_factory.hpp"大意</a>
-
-
     <ul>

-
-
       <li><a href="#set_factory_class">Class
template <code>set_factory_class &nbsp;类模板 set_factory_class</code></a></li>

+      <li><a href="#set_factory">Class template <code>set_factory
+&nbsp;类模板 set_factory</code></a></li>

-
- <li><a href="#set_factory">Class template <code>set_factory &nbsp;类 模板 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 &nbsp;头文件"boost/flyweight/assoc_container_factory_fwd.hpp"大意 </a> </li>
-
-
+synopsis
+&nbsp;头文件"boost/flyweight/assoc_container_factory_fwd.hpp"大意</a>
+  </li>

   <li><a href="#assoc_container_factory_synopsis">Header
     <code>"boost/flyweight/assoc_container_factory.hpp"</code>
 synopsis &nbsp;头文件"boost/flyweight/assoc_container_factory.hpp"大意</a>
-
-
     <ul>

-
-
       <li><a href="#assoc_container_factory_class">Class
-template <code>assoc_container_factory_class &nbsp;类模板&nbsp; assoc_container_factory_class</code></a></li>
-
-
+template <code>assoc_container_factory_class
+&nbsp;类模板&nbsp; assoc_container_factory_class</code></a></li>

       <li><a href="#assoc_container_factory">Class
-template <code>assoc_container_factory &nbsp;类模板&nbsp; assoc_container_factory</code></a></li>
-
+template <code>assoc_container_factory &nbsp;类模板&nbsp;
+assoc_container_factory</code></a></li>

-
-
-
     </ul>

-
-
   </li>

-
-
 </ul>

-
-
 <h2><a name="factory">Factories and factory
 specifiers &nbsp;工厂和工厂描述符</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>
@@ -248,17 +146,17 @@
 can
 use different equivalence relations.</p>

-
-
<p>给定一个<big><code>Key</code></big>类型和一个<a href="http://www.sgi.com/tech/stl/Assignable.html";>可赋值</a>可 隐式转换成<big><code>const Key&amp;</code></big>的 <big><code>Entry</code></big>类 -型,一<big>个<i><code>Entry</code></i></big>(隐含关联到 <big><code>Key</code></big>)<i><code></code>元 -素的工厂</i>是一个可默认构造的实体,它可以存取不可变的 <big><code>Entry</code></big>类型的元素。一 -个工厂受定义在<big><code>Key</code></big>上的相等关系支配,2个可以转换到相 同<big><code>Key</code>s</big>的<big><code>Entry</code></big>对象不能同时存 储在工厂里。不同的工厂类型可以使用不同的相等关系。
+型,一<big>个<i><code>Entry</code></i></big>(隐
+含关联到<big><code>Key</code></big>)<i><code></code>元
+素的工厂</i>是一个可默认构造的实体,它可以存取不可变的 <big><code>Entry</code></big>类
+型的元素。一
+个工厂受定义在<big><code>Key</code></big>上的相等关系支配,2个可以转
+换到相同<big><code>Key</code>s</big>的<big><code>Entry</code></big>对
+象不能同时存储在工厂里。不同的工厂类型可以使用不同的相等关系。
 </p>

-
-
 <p>
 In the following table, <code>Factory</code> is a factory
 of elements
@@ -269,184 +167,100 @@
 value of <code>Factory::handle_type</code>.
 </p>

-
-
 <p style="text-align: left;">
在下面这个表格里,<big><code>Factory</code></big>是一个 <big><code>Entry</code></big>类 -型元素的工厂,<big><code>f</code></big>代表一个 <big><code>Factory</code></big>类型的 -对象,<big><code>x</code></big>是一个<big><code>Entry</code></big>类型的对 象而<big><code>h</code></big>是 <big><code>Factory::handle_type</code></big>类 +型元素的工厂,<big><code>f</code></big>代表一个 <big><code>Factory</code></big>类
+型的
+对象,<big><code>x</code></big>是一个<big><code>Entry</code></big>类
+型的对象而<big><code>h</code></big>是 <big><code>Factory::handle_type</code></big>类
 型的值。</p>

-
-
 <table cellspacing="0">

-
-
   <caption><b>Factory requirements.</b></caption>
   <tbody>

-
-
     <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.<br>

-
-
<code>handle_type</code>是<a href="http://www.sgi.com/tech/stl/Assignable.html";>可赋值的</a>而
 且它的拷贝和赋<br>

-
-
 值操作绝不会抛出异常 </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.<br>

-
-
 如果<code>f</code>里没有相等的entry插入一个<code>x</code>的拷
 贝;返<br>

-
-
 回一个到插入的或者相等的元素的句柄 </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.<br>

-
-
 清除关联到<code>h</code>的元素。这个操作不抛出异常 </td>

-
-
     </tr>

-
-
     <tr class="odd_tr">

-
-
       <td><code>f.entry(h);</code></td>

-
-
       <td><code>const Entry&amp;</code></td>

-
-
<td>Returns a reference to the element associated to <code>h</code>.<br>

-
-
 This operation does not throw.<br>

-
-
 返回关联到<code>h</code>的元素的引用。这个操作不抛出异常 </td>

-
-
     </tr>

-
-
-
-
   </tbody>
 </table>

-
-
 <p>
 Additionally to the basic thread safety guarantee which is implicitly
 assumed
@@ -460,56 +274,35 @@
 which is being
 erased).</p>

-
-
<p>除开大多数类型包括C++标准库的大部分组件隐含假设的基本线程安全保证以 外,还要求成员函数<big><code>entry</code></big>可 以同时从不同的线程里调用,即使是在并发的访问 <big><code>insert</code></big>和<big><code>erase</code></big>的 -情况下(只要<big><code>entry</code></big>函数返回的entry不是正在被清除的那 个)。
+情况下(只要<big><code>entry</code></big>函数返回的entry不是正
+在被清除的那个)。
 </p>

-
-
 <p>
 A type <code>S</code> is said to be a <i>factory
specifier</i> if: &nbsp;一个类型<code>S</code>被称为是一个<span style="font-style: italic;">工厂描述符</span>如果:
 </p>

-
-
 <ol>

-
-
   <li>One of the following conditions is satisfied:
 &nbsp;满足以下条件之一:
-
-
     <ol type="a">

-
-
       <li><a href="#is_factory"><code>is_factory&lt;S&gt;::type</code></a>
is <a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a>, &nbsp;<a href="factories.html#is_factory"><code>is_factory&lt;S&gt;::type</code></a> 是 <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&lt;S'&gt;</code></a>. <code>S</code>的格式是<a href="factories.html#factory_construct"><code>factory&lt;S'&gt;</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
@@ -517,47 +310,31 @@
 resolves to a factory type of <code>Entry</code> elements
 (implicitly associated to <code>Key</code>).</li>

-
-
 </ol>

-
-
 <div style="margin-left: 40px;"><code>S</code>,
或者<code>S'</code>如果条件b适用,是一个<a href="../../../mpl/doc/refmanual/lambda-expression.html"><code><big>MPL -Lambda</big> <big>表达式</big></code></a>,当用类型 (<big><code>Entry,</code> -<code>Key</code></big>)调用时生成一个<big><code>Entry</code></big>元素(隐 含关
+Lambda</big> <big>表达式</big></code></a>,当用
+类型(<big><code>Entry,</code>
+<code>Key</code></big>)调用时生成一个<big><code>Entry</code></big>元
+素(隐含关
 联到<big><code>Key</code></big>)的工厂类型。</div>

-
-
 <h2><a name="factory_tag_synopsis">Header
</a><a href="../../../../boost/flyweight/factory_tag.hpp"><code>"boost/flyweight/factory_tag.hpp"</code></a>
 synopsis &nbsp;</h2>

-
-
<h2>头文件<a href="file:///boost/flyweight/factory_tag.hpp"><code>"boost/flyweight/factory_tag.hpp"</code></a>大
 意</h2>

-
-
 <blockquote>
-
-
- <pre><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">struct</span> <span class="identifier">factory_marker</span><span class="special">;</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">is_factory</span><span class="special">;</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">factory</span><span class="special">;</span><br><br><span class="special">}</span> <span class="comment">// namespace boost::flyweights</span><br><span class="special">}</span> <span class="comment">// namespace boost</span> </pre>
-
-
+ <pre><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">struct</span> <span class="identifier">factory_marker</span><span class="special">;</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">is_factory</span><span class="special">;</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">factory</span><span class="special">;</span><br><br><span class="special">}</span> <span class="comment">// namespace boost::flyweights</span><br><span class="special">}</span> <span class="comment">// namespace boost</span> </pre>

 </blockquote>

-
-
 <h3><a name="is_factory">Class template <code>is_factory
 &nbsp;类模板 is_factory</code></a></h3>

-
-
 <p>
 Unless specialized by the user, <code>is_factory&lt;T&gt;::type</code>
 is
@@ -567,20 +344,14 @@
<a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::false_</code></a>
 otherwise.</p>

-
-
<p>除非用户进行专门化,如果<big><code>T</code></big>是从 <big><code>factory_marker</code></big>派 生的,<big><code>is_factory&lt;T&gt;::type</code></big>是<big><a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a></big>, 否则是<big><a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::false_</code></a></big>。 <a href="../../../mpl/doc/refmanual/bool.html"><code></code></a>
 </p>

-
-
 <h3><a name="factory_construct">Class template <code>factory
 &nbsp;类模板 factory</code></a></h3>

-
-
 <p>
 <code>factory&lt;T&gt;</code> is a syntactic
 construct meant to indicate
@@ -589,87 +360,57 @@
 mechanisms provided by the <code>is_factory</code> class
 template.</p>

-
-
-<p><big><code>factory&lt;T&gt;</code></big>是一种表明<code>T</code>是
-一个工厂描述符的语法构造,这样就不需要借助于 <big><code>is_factory</code></big>类模板提供的机制。
+<p><big><code>factory&lt;T&gt;</code></big>是
+一种表明<code>T</code>是
+一个工厂描述符的语法构造,这样就不需要借助于 <big><code>is_factory</code></big>类
+模板提供的机制。
 </p>

-
-
 <h2><a name="hashed_factory_fwd_synopsis">Header
</a><a href="../../../../boost/flyweight/hashed_factory_fwd.hpp"><code>"boost/flyweight/hashed_factory_fwd.hpp"</code></a>
 synopsis &nbsp;</h2>

-
-
<h2>头文件<a href="file:///boost/flyweight/hashed_factory_fwd.hpp"><code>"boost/flyweight/hashed_factory_fwd.hpp"</code></a>大
 意</h2>

-
-
 <blockquote>
-
-
- <pre><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Hash</span><span class="special">=</span><b>implementation defined</b><span class="special">,</span><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Pred</span><span class="special">=</span><b>implementation defined</b><span class="special">,</span><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Allocator</span><span class="special">=</span><b>implementation defined</b><br><span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">hashed_factory_class</span><span class="special">;</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Hash</span><span class="special">=</span><b>implementation defined</b><span class="special">,</span><br><span class="keyword">&nbsp;&nbsp;typename</span> <span class="identifier">Pred</span><span class="special">=</span><b>implementation defined</b><span class="special">,</span><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Allocator</span><span class="special">=</span><b>implementation defined</b><br><span class="special">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">hashed_factory</span><span class="special">;</span><br><br><span class="special">}</span> <span class="comment">// namespace boost::flyweights</span><br><br><span class="special">}</span> <span class="comment">// namespace boost</span> </pre>
-
-
+ <pre><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Hash</span><span class="special">=</span><b>implementation defined</b><span class="special">,</span><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Pred</span><span class="special">=</span><b>implementation defined</b><span class="special">,</span><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Allocator</span><span class="special">=</span><b>implementation defined</b><br><span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">hashed_factory_class</span><span class="special">;</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Hash</span><span class="special">=</span><b>implementation defined</b><span class="special">,</span><br><span class="keyword">&nbsp;&nbsp;typename</span> <span class="identifier">Pred</span><span class="special">=</span><b>implementation defined</b><span class="special">,</span><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Allocator</span><span class="special">=</span><b>implementation defined</b><br><span class="special">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">hashed_factory</span><span class="special">;</span><br><br><span class="special">}</span> <span class="comment">// namespace boost::flyweights</span><br><br><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>

-
-
-<p><big><code>hashed_factory_fwd.hpp</code></big>前向声明了类模板<big><a href="factories.html#hashed_factory_class"><code>hashed_factory_class</code></a></big>和 <big><a href="factories.html#hashed_factory"><code>hashed_factory</code></a></big>
+<p><big><code>hashed_factory_fwd.hpp</code></big>前
+向声明了类模板<big><a href="factories.html#hashed_factory_class"><code>hashed_factory_class</code></a></big>和 <big><a href="factories.html#hashed_factory"><code>hashed_factory</code></a></big>
 </p>

-
-
 <h2><a name="hashed_factory_synopsis">Header
</a><a href="../../../../boost/flyweight/hashed_factory.hpp"><code>"boost/flyweight/hashed_factory.hpp"</code></a>
 synopsis &nbsp;</h2>

-
-
<h2>头文件<a href="file:///boost/flyweight/hashed_factory.hpp"><code>"boost/flyweight/hashed_factory.hpp"</code></a>大
 意</h2>

-
-
<h3><a name="hashed_factory_class">Class template <code>hashed_factory_class
 &nbsp;类模板 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>

-
-
-<p><big><code>hashed_factory_class</code></big>是一个用哈希容器实现的<a href="#factory">工厂</a>
+<p><big><code>hashed_factory_class</code></big>是
+一个用哈希容器实现的<a href="#factory">工厂</a>
 </p>

-
-
 <blockquote>
-
-
- <pre><span class="keyword">template</span><span class="special">&lt;</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; 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><br><span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">hashed_factory_class</span><br><span class="special">{</span><br><span class="keyword">public</span><span class="special">:</span><br><span class="keyword">&nbsp; typedef</span> <b>implementation defined</b> <span class="identifier">handle_type</span><span class="special">;</span><br><br><span class="identifier">&nbsp; 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">&amp;</span> <span class="identifier">x</span><span class="special">);</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; const</span> <span class="identifier">Entry</span><span class="special">&amp;</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><br><span class="special">};</span> </pre>
-
-
+ <pre><span class="keyword">template</span><span class="special">&lt;</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; 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><br><span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">hashed_factory_class</span><br><span class="special">{</span><br><span class="keyword">public</span><span class="special">:</span><br><span class="keyword">&nbsp; typedef</span> <b>implementation defined</b> <span class="identifier">handle_type</span><span class="special">;</span><br><br><span class="identifier">&nbsp; 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">&amp;</span> <span class="identifier">x</span><span class="special">);</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; const</span> <span class="identifier">Entry</span><span class="special">&amp;</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><br><span class="special">};</span> </pre>

 </blockquote>

-
-
 <p>
 <code>Hash</code> is a
<a href="http://www.sgi.com/tech/stl/DefaultConstructible.html";><code>Default
@@ -706,52 +447,40 @@
 constructed with default initialized objects of type <code>Hash</code>,
 <code>Pred</code> and <code>Allocator</code>.</p>

-
-
<p><big><code>Hash</code></big>是一个<a href="http://www.sgi.com/tech/stl/DefaultConstructible.html";>可 默认构造</a>的<a href="http://www.sgi.com/tech/stl/UnaryFunction.html";>一元 函数</a>,
 带一个<big><code>Key</code></big>类型的参数返回一个<big><code>[0,
-std::numeric_limits&lt;std::size_t&gt;::max())</code></big>范围的 <big><code>std::size_t</code></big>类 -型的值。<big><code>Pred</code></big>是一个可默认构造的二元谓词判断 <big><code>Key</code></big>元 -素的相等关系。要求对于使用<big><code>Pred</code></big>判断相等的对象 <big><code>Hash</code></big>对 -象返回相同的值。与工厂相关的<big><code>Key</code></big>上的相等关系是由 <big><code>Pred</code></big>得 -出。<big><code>Hash</code></big>和<big><code>Pred</code></big>的默认参数分 别是<big><a href="../../../functional/hash/index.html"><code>boost::hash&lt;Key&gt;</code></a></big>
+std::numeric_limits&lt;std::size_t&gt;::max())</code></big>范
+围的<big><code>std::size_t</code></big>类型的值。 <big><code>Pred</code></big>是
+一个可默认构造的二元谓词判断<big><code>Key</code></big>元素的相等关
+系。要求对于使用<big><code>Pred</code></big>判断相等的对象 <big><code>Hash</code></big>对
+象返回相同的值。与工厂相关的<big><code>Key</code></big>上的相等关系是
+由<big><code>Pred</code></big>得
+出。<big><code>Hash</code></big>和<big><code>Pred</code></big>的
+默认参数分别是<big><a href="../../../functional/hash/index.html"><code>boost::hash&lt;Key&gt;</code></a></big> 和 <code><big>std::equal_to&lt;Key&gt;</big></code>。 <big><code>Allocator</code></big>必 须是满足C++标准<b>[lib.allocator.requirements]</b>中的相关要求的 <big><code>Entry</code></big>对 象的分配器。默认的参数是 <big><code>std::allocator&lt;Entry&gt;</code><code></code></big>。 <big><code>hashed_factory_class</code></big>基 -于的内部哈希容器是用 <big><code>Hash</code></big>,<big><code>Pred</code></big> 和 +于的内部哈希容器是用 <big><code>Hash</code></big>,<big><code>Pred</code></big>
+和
 <big><code>Allocator</code></big>类型的默认初始化对象创建的。
 </p>

-
-
 <h3><a name="hashed_factory">Class template <code>hashed_factory
 &nbsp;类模板 &nbsp;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>

-
-
<p><big><a href="factories.html#hashed_factory_class"><code>hashed_factory_class</code></a></big>的 <a href="#factory">工厂描述符</a>
 </p>

-
-
 <blockquote>
-
-
- <pre><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">hashed_factory</span><span class="special">;</span> </pre>
-
-
+ <pre><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">hashed_factory</span><span class="special">;</span> </pre>

 </blockquote>

-
-
 <p>
 <code>hashed_factory&lt;Hash,Pred,Allocator&gt;</code>
 is an
@@ -759,47 +488,27 @@
 Metafunction
 Class</code></a> such that the type</p>

-
-
 <p><big><code>hashed_factory&lt;Hash,Pred,Allocator&gt;</code></big>是
 一个<a href="../../../mpl/doc/refmanual/metafunction-class.html"><code>MPL
 <big>元函数类</big></code></a>,于是类型
 </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">&lt;</span><br><span class="identifier"> hashed_factory</span><span class="special">&lt;</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">&gt;,</span><br><span class="identifier"> Entry</span><span class="special">,</span><span class="identifier">Key</span><br><span class="special">&gt;::</span><span class="identifier">type</span> </pre>
-
-
+ <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">&lt;</span><br><span class="identifier"> hashed_factory</span><span class="special">&lt;</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">&gt;,</span><br><span class="identifier"> Entry</span><span class="special">,</span><span class="identifier">Key</span><br><span class="special">&gt;::</span><span class="identifier">type</span> </pre>

 </blockquote>

-
-
 <p>
 is the same as</p>

-
-
 <p>等同于
 </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">&lt;</span><br><span class="identifier"> hashed_factory_class</span><span class="special">&lt;</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">&gt;,</span><br><span class="identifier"> Entry</span><span class="special">,</span><span class="identifier">Key</span><br><span class="special">&gt;::</span><span class="identifier">type</span> </pre>
-
-
+ <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">&lt;</span><br><span class="identifier"> hashed_factory_class</span><span class="special">&lt;</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">&gt;,</span><br><span class="identifier"> Entry</span><span class="special">,</span><span class="identifier">Key</span><br><span class="special">&gt;::</span><span class="identifier">type</span> </pre>

 </blockquote>

-
-
 <p>
 This implies that <code>Hash</code>, <code>Pred</code>
 and <code>Allocator</code>
@@ -808,86 +517,60 @@
 types used by
 <code>hashed_factory_class</code>.</p>

-
-
 <p>这暗示着<big><code>Hash</code></big>, <big><code>Pred</code></big>
和 <big><code>Allocator</code></big>可以是<a href="../../../mpl/doc/refmanual/placeholder-expression.html"><code>MPL
-<big>占位符表达式</big></code></a><code><big>,生
+<big>占位符表达式</big></code></a><code><big>,
+生
 成</big></code><big><code>hashed_factory_class</code></big><code><big>用
 到的实际类型</big></code>
 </p>

-
-
 <h2><a name="set_factory_fwd_synopsis">Header
</a><a href="../../../../boost/flyweight/set_factory_fwd.hpp"><code>"boost/flyweight/set_factory_fwd.hpp"</code></a>
 synopsis &nbsp;</h2>

-
-
<h2>头文件<a href="file:///boost/flyweight/set_factory_fwd.hpp"><code>"boost/flyweight/set_factory_fwd.hpp"</code></a>大
 意</h2>

-
-
 <blockquote>
-
-
- <pre><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Compare</span><span class="special">=</span><b>implementation defined</b><span class="special">,</span><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Allocator</span><span class="special">=</span><b>implementation defined</b><br><span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">set_factory_class</span><span class="special">;</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Compare</span><span class="special">=</span><b>implementation defined</b><span class="special">,</span><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Allocator</span><span class="special">=</span><b>implementation defined</b><br><span class="special">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">set_factory</span><span class="special">;</span><br><br><span class="special">}</span> <span class="comment">// namespace boost::flyweights</span><br><br><span class="special">}</span> <span class="comment">// namespace boost</span> </pre>
-
-
+ <pre><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Compare</span><span class="special">=</span><b>implementation defined</b><span class="special">,</span><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Allocator</span><span class="special">=</span><b>implementation defined</b><br><span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">set_factory_class</span><span class="special">;</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Compare</span><span class="special">=</span><b>implementation defined</b><span class="special">,</span><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Allocator</span><span class="special">=</span><b>implementation defined</b><br><span class="special">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">set_factory</span><span class="special">;</span><br><br><span class="special">}</span> <span class="comment">// namespace boost::flyweights</span><br><br><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>

-
-
-<p><big><code>set_factory_fwd.hpp</code></big>前置声明了类模板<big><a href="factories.html#set_factory_class"><code>set_factory_class</code></a></big>
+<p><big><code>set_factory_fwd.hpp</code></big>前
+置声明了类模板<big><a href="factories.html#set_factory_class"><code>set_factory_class</code></a></big> 和 <big><a href="factories.html#set_factory"><code>set_factory</code></a></big>
 </p>

-
-
 <h2><a name="set_factory_synopsis">Header
</a><a href="../../../../boost/flyweight/set_factory.hpp"><code>"boost/flyweight/set_factory.hpp"</code></a>
 synopsis &nbsp;</h2>
-<h2>头文件<a href="../../../../boost/flyweight/set_factory.hpp"><code>"boost/flyweight/set_factory.hpp"</code></a>大 意</h2>
-
-
-
-<h3><a name="set_factory_class">Class template <code>set_factory_class &nbsp;类模板 set_factory_class</code></a></h3>

+<h2>头文件<a href="../../../../boost/flyweight/set_factory.hpp"><code>"boost/flyweight/set_factory.hpp"</code></a>大
+意</h2>

+<h3><a name="set_factory_class">Class template <code>set_factory_class
+&nbsp;类模板 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>

-
-
-<p><big><code>set_factory_class</code></big>是一个基于有序关联容器实现的<a href="#factory">工厂</a>
+<p><big><code>set_factory_class</code></big>是
+一个基于有序关联容器实现的<a href="#factory">工厂</a>
 </p>

-
-
 <blockquote>
-
-
- <pre><span class="keyword">template</span><span class="special">&lt;</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Compare</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">Allocator</span><br><span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">set_factory_class</span><br><span class="special">{</span><br><span class="keyword">public</span><span class="special">:</span><br><span class="keyword">&nbsp; typedef</span> <b>implementation defined</b> <span class="identifier">handle_type</span><span class="special">;</span><br><br><span class="identifier">&nbsp; 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">&amp;</span> <span class="identifier">x</span><span class="special">);</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; const</span> <span class="identifier">Entry</span><span class="special">&amp;</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><br><span class="special">};</span> </pre>
-
-
+ <pre><span class="keyword">template</span><span class="special">&lt;</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; typename</span> <span class="identifier">Compare</span><span class="special">,</span><span class="keyword">typename</span> <span class="identifier">Allocator</span><br><span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">set_factory_class</span><br><span class="special">{</span><br><span class="keyword">public</span><span class="special">:</span><br><span class="keyword">&nbsp; typedef</span> <b>implementation defined</b> <span class="identifier">handle_type</span><span class="special">;</span><br><br><span class="identifier">&nbsp; 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">&amp;</span> <span class="identifier">x</span><span class="special">);</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; const</span> <span class="identifier">Entry</span><span class="special">&amp;</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><br><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>
@@ -909,48 +592,35 @@
 constructed with default initialized objects of type <code>Compare</code>
 and <code>Allocator</code>.</p>

-
-
<p><big><code>Compare</code></big>是一个<a href="http://www.sgi.com/tech/stl/DefaultConstructible.html";>可 默认构造</a>而且在<big><code>Key</code></big>上<a href="http://www.sgi.com/tech/stl/StrictWeakOrdering.html";>严格
 弱序</a>的类型。如果对<big><code>Compare</code></big>类
 型的<big><code>c</code></big>类来说<big><code>!c(x,y)&amp;&amp;!c(y,
 x)</code></big>,2个<big><code>Key</code>s
-<code>x</code></big> 和<big><code>y</code></big>被看作相等<code>。 </code><big><code>Compare</code></big>的默认参数是 <big><code>std::less&lt;Key&gt;</code></big>。 <big><code>Allocator</code></big>必须是满足C++标准 <b>[lib.allocator.requirements]</b>里
+<code>x</code></big> 和<big><code>y</code></big>被
+看作相等<code>。</code><big><code>Compare</code></big>的
+默认参数是<big><code>std::less&lt;Key&gt;</code></big>。 <big><code>Allocator</code></big>必
+须是满足C++标准<b>[lib.allocator.requirements]</b>里
的相关要求的<big><code>Entry</code></big>对象的分配器。默认的参数是 <big><code>std::allocator&lt;Entry&gt;</code></big><code>。 </code><code></code><code></code><big><code>set_factory_class</code></big>基 于的内部容器是用<big><code>Compare</code></big> 和 <big><code>Allocator</code></big>类
 型的默认初始化对象创建的。<code></code>
 </p>

-
-
 <h3><a name="set_factory">Class template <code>set_factory
 &nbsp;类模板 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>

-
-
<p><big><a href="factories.html#set_factory_class"><code>set_factory_class</code></a></big>的 <a href="#factory">工厂描述符</a>
 </p>

-
-
 <blockquote>
-
-
- <pre><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">set_factory</span><span class="special">;</span> </pre>
-
-
+ <pre><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">set_factory</span><span class="special">;</span> </pre>

 </blockquote>

-
-
 <p>
 <code>set_factory&lt;Compare,Allocator&gt;</code>
 is an
@@ -958,50 +628,28 @@
 Metafunction
 Class</code></a> such that the type</p>

-
-
 <p><big><code>set_factory&lt;Compare,Allocator&gt;</code></big>是
一个<a href="../../../mpl/doc/refmanual/metafunction-class.html"><code><big>MPL</big>
 <big>元函数类</big></code></a>,于是类型<br>

-
-
 </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">&lt;</span><br><span class="identifier"> set_factory</span><span class="special">&lt;</span><span class="identifier">Compare</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">&gt;,</span><br><span class="identifier"> Entry</span><span class="special">,</span><span class="identifier">Key</span><br><span class="special">&gt;::</span><span class="identifier">type</span> </pre>
-
-
+ <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">&lt;</span><br><span class="identifier"> set_factory</span><span class="special">&lt;</span><span class="identifier">Compare</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">&gt;,</span><br><span class="identifier"> Entry</span><span class="special">,</span><span class="identifier">Key</span><br><span class="special">&gt;::</span><span class="identifier">type</span> </pre>

 </blockquote>

-
-
 <p>
 is the same as</p>

-
-
 <p>等同于
 </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">&lt;</span><br><span class="identifier"> set_factory_class</span><span class="special">&lt;</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">&gt;,</span><br><span class="identifier"> Entry</span><span class="special">,</span><span class="identifier">Key</span><br><span class="special">&gt;::</span><span class="identifier">type</span> </pre>
-
-
+ <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">&lt;</span><br><span class="identifier"> set_factory_class</span><span class="special">&lt;</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">&gt;,</span><br><span class="identifier"> Entry</span><span class="special">,</span><span class="identifier">Key</span><br><span class="special">&gt;::</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
@@ -1009,95 +657,63 @@
 types used by
 <code>set_factory_class</code>.</p>

-
-
<p>这暗示着<big><code>Compare</code></big> 和 <big><code>Allocator</code></big>可 以是<a href="../../../mpl/doc/refmanual/placeholder-expression.html"><code>MPL <big>占位符表达式</big></code></a><code><big>,</big></code><code><big>生 </big></code><code><big>成 </big></code><big><code>set_factory_class</code></big><code><big>用
 到的实际类型</big></code>
 </p>

-
-
 <h2><a name="assoc_container_factory_fwd_synopsis">Header
</a><a href="../../../../boost/flyweight/assoc_container_factory_fwd.hpp"><code>"boost/flyweight/assoc_container_factory_fwd.hpp"</code></a>
 synopsis &nbsp;</h2>

-
-
<h2>头文件<a href="file:///boost/flyweight/assoc_container_factory_fwd.hpp"><code>"boost/flyweight/assoc_container_factory_fwd.hpp"</code></a>大
 意</h2>

-
-
 <blockquote>
-
-
- <pre><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">assoc_container_factory_class</span><span class="special">;</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">ContainerSpecifier</span><span class="special">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">assoc_container_factory</span><span class="special">;</span><br><br><span class="special">}</span> <span class="comment">// namespace boost::flyweights</span><br><br><span class="special">}</span> <span class="comment">// namespace boost</span> </pre>
-
-
+ <pre><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">assoc_container_factory_class</span><span class="special">;</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">ContainerSpecifier</span><span class="special">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">assoc_container_factory</span><span class="special">;</span><br><br><span class="special">}</span> <span class="comment">// namespace boost::flyweights</span><br><br><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>

-
-
-<p><big><code>assoc_container_factory_fwd.hpp</code></big>前向声明了类模
+<p><big><code>assoc_container_factory_fwd.hpp</code></big>前
+向声明了类模
板<big><a href="factories.html#assoc_container_factory_class"><code>assoc_container_factory_class</code></a></big> 和 <big><a href="factories.html#assoc_container_factory"><code>assoc_container_factory</code></a></big>
 </p>

-
-
 <h2><a name="assoc_container_factory_synopsis">Header
</a><a href="../../../../boost/flyweight/assoc_container_factory.hpp"><code>"boost/flyweight/assoc_container_factory.hpp"</code></a>
 synopsis &nbsp;</h2>

-
-
<h2>头文件<a href="file:///boost/flyweight/assoc_container_factory.hpp"><code>"boost/flyweight/assoc_container_factory.hpp"</code></a>大
 意</h2>

-
-
 <h3><a name="assoc_container_factory_class">Class
 template <code>assoc_container_factory_class &nbsp;类模板
 &nbsp;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>

-
-
-<p><big><code>assoc_container_factory_class</code></big>包装了一个合适的关
+<p><big><code>assoc_container_factory_class</code></big>包
+装了一个合适的关
 联容器用来提供<a href="#factory">工厂</a>的界面
 </p>

-
-
 <blockquote>
-
-
- <pre><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">assoc_container_factory_class</span><br><span class="special">{</span><br><span class="keyword">public</span><span class="special">:</span><br><span class="keyword">&nbsp; 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><br><br><span class="identifier">&nbsp; 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">&amp;</span> <span class="identifier">x</span><span class="special">);</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; 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">&amp;</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><br><span class="special">};</span> </pre>
-
-
+ <pre><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">assoc_container_factory_class</span><br><span class="special">{</span><br><span class="keyword">public</span><span class="special">:</span><br><span class="keyword">&nbsp; 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><br><br><span class="identifier">&nbsp; 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">&amp;</span> <span class="identifier">x</span><span class="special">);</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; 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">&amp;</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><br><span class="special">};</span> </pre>

 </blockquote>

-
-
 <p>
 <code>Container</code> must be an (ordered or unordered)
 associative container
@@ -1105,53 +721,30 @@
 器,该容器满足
 </p>

-
-
 <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>

-
-
-
-
- <p><big><code>Container::key_type</code></big>等同于 <big><code>Container::value_type</code></big>(它是相关工厂的entry类型)</p>
-
-
+  <p><big><code>Container::key_type</code></big>等
+同于<big><code>Container::value_type</code></big>(它
+是相关工厂的entry类型)</p>

   <li>Unique keys (rather than equivalent keys) are supported.</li>

-
-
-
-
   <p>支持唯一的keys(而非相等的key)</p>

-
-
   <li><code>Container</code> is <i>stable</i>,
i.e. its iterators are not invalidated upon insert or erase operations.</li>

-
-
-
-
- <p>容器是<span style="font-style: italic;">稳定的</span>,就是说,插入和 删除操作之后它的迭代器依然有效<code></code><br>
-
+  <p>容器是<span style="font-style: italic;">稳定的</span>,
+就是说,插入和删除操作之后它的迭代器依然有效<code></code><br>

   </p>

-
-
 </ol>

-
-
-
The equivalence relation associated to <code>assoc_container_factory_class</code>
 is the one induced by <code>Container</code>. If
 equivalence of elements
@@ -1165,59 +758,45 @@
 implicitly associated to
 <code>value_type'</code>. For example, the instantiation<br>

-
 <code></code><br>

-
-<big><code>assoc_container_factory_class</code></big>上的相等关系由 <big><code>Container</code></big>导出。如果 <big><code>Container::value_type</code></big>元素的相等关系完全由类型 <big><code>value_type'</code></big>决定,而且 <big><code>value_type</code></big>可以隐式转换成 <code><big>value_type'</big>,</code>那么 <big><code>assoc_container_factory_class</code></big>是一个隐式关联到 <big><code>value_type'</code></big>的<big><code>value_type</code></big>类型 元素的工厂。例如,这个实例
+<big><code>assoc_container_factory_class</code></big>上
+的相等关系由<big><code>Container</code></big>导出。如果 <big><code>Container::value_type</code></big>元
+素的相等关系完全由类型<big><code>value_type'</code></big>决
+定,而且<big><code>value_type</code></big>可以隐式转换成 <code><big>value_type'</big>,</code>那
+么<big><code>assoc_container_factory_class</code></big>是
+一个隐式关联到<big><code>value_type'</code></big>的 <big><code>value_type</code></big>类
+型元素的工厂。例如,这个实例
 <blockquote>
-
-
- <pre><span class="identifier">assoc_container_factory_class</span><span class="special">&lt;</span><br><span class="identifier">&nbsp; std</span><span class="special">::</span><span class="identifier">set</span><span class="special">&lt;</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">&lt;</span><span class="identifier">base</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="comment">// derived inherits from base</span><br><span class="special">&gt;</span> </pre>
-
-
+ <pre><span class="identifier">assoc_container_factory_class</span><span class="special">&lt;</span><br><span class="identifier">&nbsp; std</span><span class="special">::</span><span class="identifier">set</span><span class="special">&lt;</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">&lt;</span><span class="identifier">base</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="comment">// derived inherits from base</span><br><span class="special">&gt;</span> </pre>

 </blockquote>

-
-
 <p>
 is a factory of <code>derived</code> elements implicitly
 associated to
 <code>base</code>.</p>

-
-<p>是一个隐式关联到<big><code>base</code></big>的 <big><code>derived</code></big>元素的工厂 +<p>是一个隐式关联到<big><code>base</code></big>的 <big><code>derived</code></big>元
+素的工厂
 </p>

-
-
 <h3><a name="assoc_container_factory">Class template
-<code>assoc_container_factory &nbsp;类模板 &nbsp;assoc_container_factory</code></a></h3>
-
-
+<code>assoc_container_factory &nbsp;类模板
+&nbsp;assoc_container_factory</code></a></h3>

 <p>
 <a href="#factory"><code>Factory Specifier</code></a>
for <a href="#assoc_container_factory_class"><code>assoc_container_factory_class</code></a>.</p>

-
<p><big><a href="factories.html#assoc_container_factory_class"><code>assoc_container_factory_class</code></a></big>的 <a href="#factory">工厂描述符</a>
 </p>

-
-
 <blockquote>
-
-
- <pre><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">ContainerSpecifier</span><span class="special">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">assoc_container_factory</span><span class="special">;</span> </pre>
-
-
+ <pre><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">ContainerSpecifier</span><span class="special">&gt;</span><br><span class="keyword">struct</span> <span class="identifier">assoc_container_factory</span><span class="special">;</span> </pre>

 </blockquote>

-
-
 <p>
<code>ContainerSpecifier</code> must be an <a href="../../../mpl/doc/refmanual/lambda-expression.html"><code>MPL
 Lambda
@@ -1228,61 +807,44 @@
 is a factory
of <code>Entry</code> elements implicitly associated to <code>Key</code>.</p>

-
-<p><big><code>ContainerSpecifier</code></big>必须是一个<a href="../../../mpl/doc/refmanual/lambda-expression.html"><code><big>MPL -Lambda</big> <big>表达式</big></code></a>,当用 (<big><code>Entry</code>,<code>Key</code></big>)调用时,生成一个 <code><big>Container</big>,</code>然后 <big><code>assoc_container_factory_class&lt;Container&gt;</code></big>是一个 <code></code>隐式关联到<big><code>Key</code></big>的 <big><code>Entry</code></big>元素的工厂,
+<p><big><code>ContainerSpecifier</code></big>必
+须是一个<a href="../../../mpl/doc/refmanual/lambda-expression.html"><code><big>MPL
+Lambda</big> <big>表达式</big></code></a>,当用
+(<big><code>Entry</code>,<code>Key</code></big>)
+调用时,生成一个<code><big>Container</big>,</code>然后 <big><code>assoc_container_factory_class&lt;Container&gt;</code></big>是 +一个<code></code>隐式关联到<big><code>Key</code></big>的 <big><code>Entry</code></big>元
+素的工厂,
 </p>

-
-
 <hr>
<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 style="" clear="all">

-
-
 <br>

-
-
 <p>Revised August 13th 2008</p>

-
-
-<p>© Copyright 2006-2008 Joaquín M
-López Muñoz.
+<p>&copy; Copyright 2006-2008 Joaqu&iacute;n M
+L&oacute;pez Mu&ntilde;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>
\ No newline at end of file
+</body>
+</html>

Modified: trunk/libs/flyweight/doc/reference/holders.html
==============================================================================
--- trunk/libs/flyweight/doc/reference/holders.html     (original)
+++ trunk/libs/flyweight/doc/reference/holders.html     Fri Apr 10 04:07:11 2009
@@ -1,8 +1,11 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
-<html><head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
+<html>
+<head>



+
+


   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -10,77 +13,99 @@



+
+





- <title>Boost.Flyweight Documentation - Holders reference</title><link rel="stylesheet" href="../style.css" type="text/css">
+  <title>Boost.Flyweight Documentation - Holders reference</title>
+  <link rel="stylesheet" href="../style.css" type="text/css">



+
+


   <link rel="start" href="../index.html">



+
+


   <link rel="prev" href="factories.html">



+
+


   <link rel="up" href="index.html">



+
+


-  <link rel="next" href="locking.html"></head>
+  <link rel="next" href="locking.html">
+</head>
+
 <body>



+
<h1><img src="../../../../boost.png" alt="Boost logo" align="middle" height="86" width="277">Boost.Flyweight
 Holders reference</h1>




+
<div class="prev_link"><a href="factories.html"><img src="../prev.gif" alt="factories" border="0"><br>



+
 Factories
 </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="locking.html"><img src="../next.gif" alt="locking policies" border="0"><br>



+
 Locking policies
 </a></div>


+
 <br style="" clear="all">




+
 <hr>

 <h2>Contents &nbsp;目录</h2>
@@ -88,16 +113,20 @@



+
 <ul>



-  <li><a href="#holder">Holders and holder specifiers</a></li>
+
+ <li><a href="#holder">Holders and holder specifiers &nbsp;Holders和 holder描述符</a></li>
+



   <li><a href="#holder_tag_synopsis">Header
-    <code>"boost/flyweight/holder_tag.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/holder_tag.hpp"</code> synopsis &nbsp;头文 件"boost/flyweight/holder_tag.hpp"大意</a>
+



@@ -105,33 +134,41 @@



- <li><a href="#is_holder">Class template <code>is_holder</code></a></li>
+
+ <li><a href="#is_holder">Class template <code>is_holder &nbsp;类模板 is_holder</code></a></li>
+
+


+ <li><a href="#holder_construct">Class template <code>holder &nbsp;类 模板holder</code></a></li>

- <li><a href="#holder_construct">Class template <code>holder</code></a></li>






+
     </ul>


+

   </li>



+
   <li><a href="#static_holder_fwd_synopsis">Header
-    <code>"boost/flyweight/static_holder_fwd.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/static_holder_fwd.hpp"</code> synopsis &nbsp;头 文件"boost/flyweight/static_holder_fwd.hpp"大意</a>
   </li>



+
   <li><a href="#static_holder_synopsis">Header
-    <code>"boost/flyweight/static_holder.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/static_holder.hpp"</code> synopsis &nbsp;头文 件"boost/flyweight/static_holder.hpp"大意</a>
+



@@ -139,33 +176,41 @@



- <li><a href="#static_holder_class">Class template <code>static_holder_class</code></a></li>
+
+ <li><a href="#static_holder_class">Class template <code>static_holder_class &nbsp;类模板static_holder_class</code></a></li>
+
+


+ <li><a href="#static_holder">Class <code>static_holder &nbsp;类模板 static_holder</code></a></li>

- <li><a href="#static_holder">Class <code>static_holder</code></a></li>






+
     </ul>


+

   </li>



+
   <li><a href="#intermodule_holder_fwd_synopsis">Header
-    <code>"boost/flyweight/intermodule_holder_fwd.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/intermodule_holder_fwd.hpp"</code> synopsis &nbsp;头文件"boost/flyweight/intermodule_holder_fwd.hpp"大意</a>
   </li>



+
   <li><a href="#intermodule_holder_synopsis">Header
-    <code>"boost/flyweight/intermodule_holder.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/intermodule_holder.hpp"</code> synopsis &nbsp;头 文件"boost/flyweight/intermodule_holder.hpp"大意</a>
+



@@ -173,31 +218,39 @@



- <li><a href="#intermodule_holder_class">Class template <code>intermodule_holder_class</code></a></li>
+
+ <li><a href="#intermodule_holder_class">Class template <code>intermodule_holder_class &nbsp;类模板 intermodule_holder_class</code></a></li>
+



- <li><a href="#intermodule_holder">Class <code>intermodule_holder</code></a></li> + <li><a href="#intermodule_holder">Class <code>intermodule_holder &nbsp;类模板intermodule_holder</code></a></li>



+
+



     </ul>


+

   </li>



+
 </ul>




-<h2><a name="holder">Holders and holder specifiers &nbsp;Holder和Holder描述 符</a></h2>
+
+<h2><a name="holder">Holders and holder specifiers &nbsp;Holders和Holder描 述符</a></h2>
+



@@ -212,39 +265,48 @@
privately uses a holder to instantiate a <a href="factories.html#factory">factory</a> and some additional data (like a <a href="locking.html#preliminary">mutex</a> for internal synchronization) unique to each instantiation type of the class template.</p>
+
<p>给定一个类型<code>C</code>,如果表达式 <big><code>Holder::get()</code></big>果返回一个对 <big><code>Holder</code></big>来说唯一的到默认初始化的<code>C</code>对象的引 用,那么类型<big><code>Holder</code></big>被称为<big><i style="font-style: italic;"><code>C</code></i></big><span style="font-style: italic;">的一个 </span><i style="font-style: italic;">holder</i>。除了程序中的第一次调用之 外,<big><code>Holder::get()</code></big>的调用不会抛出异常。<big><a href="flyweight.html#flyweight"><code>flyweight</code></a></big>私下的使用一 个holder来实例化对这个类模板的每个实例类型来说唯一的一个<a href="factories.html#factory">工厂</a>和一些附加数据(例如用来做内部同步的 <a href="locking.html#preliminary">互斥体</a>)。
 </p>




+
 <p>
A type <code>S</code> is a <i>holder specifier</i> if: &nbsp;一个类型 <code>S</code>是一个<i style="font-style: italic;">holder</i><span style="font-style: italic;">描述符</span>如果:
 </p>


+
 <ol>



+
   <li>One of the following conditions is satisfied: &nbsp;以下条件之一满足



+
     <ol type="a">



+
       <li><a href="#is_holder"><code>is_holder&lt;S&gt;::type</code></a> is
<a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a>, &nbsp;<a href="holders.html#is_holder"><code>is_holder&lt;S&gt;::type</code></a> 是 <a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a></li>



+
<li><code>S</code> is of the form <a href="#holder_construct"><code>holder&lt;S'&gt;</code></a>. &nbsp;<code>S</code>的格式是<a href="holders.html#holder_construct"><code>holder&lt;S'&gt;</code></a></li>



+
+



@@ -252,10 +314,12 @@



+
   </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 type <code>C</code> resolves to
@@ -263,19 +327,25 @@



+
 </ol>
+
<div style="margin-left: 40px;">S,或者S'如果条件b适用,是一个<a href="../../../mpl/doc/refmanual/lambda-expression.html"><big><code>MPL Lambda </code></big>表达式<code></code></a>,当用类型<code>C</code>调用时得到 一个<code>C</code>的holder</div>
+
 <h2><a name="holder_tag_synopsis">Header
</a><a href="../../../../boost/flyweight/holder_tag.hpp"><code>"boost/flyweight/holder_tag.hpp"</code></a> synopsis &nbsp;</h2>
+
<h2>头文件<a href="../../../../boost/flyweight/holder_tag.hpp"><code>"boost/flyweight/holder_tag.hpp"</code></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>
@@ -293,53 +363,64 @@
<span class="special">}</span> <span class="comment">// namespace boost</span> </pre>


+
 </blockquote>




+
<h3><a name="is_holder">Class template <code>is_holder &nbsp;类模板 is_holder</code></a></h3>




+
 <p>
 Unless specialized by the user, <code>is_holder&lt;T&gt;::type</code> is
<a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a>
 if <code>T</code> is derived from <code>holder_marker</code>, and it is
<a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::false_</code></a>
 otherwise.</p>
+
<p>除非用户进行专门化,如果<big><code>T</code></big>是从 <big><code>holder_marker</code></big>派生 的,<big><code>is_holder&lt;T&gt;::type</code></big>是<big><a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a></big>,否 则是<big><a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::false_</code></a></big>。
 </p>




+
<h3><a name="holder_construct">Class template <code>holder &nbsp;类模板 holder</code></a></h3>




+
 <p>
 <code>holder&lt;T&gt;</code> is a syntactic construct meant to indicate
 that <code>T</code> is a holder specifier without resorting to the
 mechanisms provided by the <code>is_holder</code> class template.</p>
+
<p><code>holder&lt;T&gt;</code>是一种表明<code>T</code>是一个holder描述符的 语法构造,这样就不需要借助于<big><code>is_holder</code></big>类模板提供的机 制。
 </p>




+
 <h2><a name="static_holder_fwd_synopsis">Header
</a><a href="../../../../boost/flyweight/static_holder_fwd.hpp"><code>"boost/flyweight/static_holder_fwd.hpp"</code></a> synopsis &nbsp;</h2>
+
<h2>头文件<a href="../../../../boost/flyweight/static_holder_fwd.hpp"><code>"boost/flyweight/static_holder_fwd.hpp"</code></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>
@@ -354,69 +435,84 @@
<span class="special">}</span> <span class="comment">// namespace boost</span> </pre>


+
 </blockquote>




+
 <p>
 <code>static_holder_fwd.hpp</code> forward declares
 <a href="#static_holder_class"><code>static_holder_class</code></a>
 and <a href="#static_holder"><code>static_holder</code></a>.</p>


+
<p><big><code>static_holder_fwd.hpp</code></big>前向声明<big><a href="holders.html#static_holder_class"><code>static_holder_class</code></a></big> 和 <big><a href="holders.html#static_holder"><code>static_holder</code></a></big>。
 </p>




+
 <h2><a name="static_holder_synopsis">Header
</a><a href="../../../../boost/flyweight/static_holder.hpp"><code>"boost/flyweight/static_holder.hpp"</code></a> synopsis &nbsp;</h2>
+
<h2>头文件<a href="../../../../boost/flyweight/static_holder.hpp"><code>"boost/flyweight/static_holder.hpp"</code></a>大 意</h2>




+
<h3><a name="static_holder_class">Class template <code>static_holder_class &nbsp;类模板 static_holder_class</code></a></h3>




+
 <p>
<code>static_holder_class&lt;C&gt;</code> keeps its unique instance of <code>C</code> as a
 local static object.</p>


+
<p><big><code>static_holder_class&lt;C&gt;</code></big>保存它的 <code>C</code>的唯一实例作为一个局部静态对象。
 </p>




+
<h3><a name="static_holder">Class <code>static_holder &nbsp;类模板 static_holder</code></a></h3>




+
 <p>
<a href="#holder"><code>Holder Specifier</code></a> for <a href="#static_holder_class"><code>static_holder_class</code></a>.</p>
+
<p><big><a href="holders.html#static_holder_class"><code>static_holder_class</code></a></big>的 <a href="holders.html#holder"><big><code>Holder&nbsp;</code></big>描述符</a>
 </p>




+
 <h2><a name="intermodule_holder_fwd_synopsis">Header
</a><a href="../../../../boost/flyweight/intermodule_holder_fwd.hpp"><code>"boost/flyweight/intermodule_holder_fwd.hpp"</code></a> synopsis &nbsp;</h2>
+
<h2>头文件<a href="../../../../boost/flyweight/intermodule_holder_fwd.hpp"><code>"boost/flyweight/intermodule_holder_fwd.hpp"</code></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>
@@ -431,35 +527,42 @@
<span class="special">}</span> <span class="comment">// namespace boost</span> </pre>


+
 </blockquote>




+
 <p>
 <code>intermodule_holder_fwd.hpp</code> forward declares
<a href="#intermodule_holder_class"><code>intermodule_holder_class</code></a>
 and <a href="#intermodule_holder"><code>intermodule_holder</code></a>.</p>

+
<p><big><code>intermodule_holder_fwd.hpp</code></big>前向声明<big><a href="holders.html#intermodule_holder_class"><code>intermodule_holder_class</code></a> </big>和 <big><a href="holders.html#intermodule_holder"><code>intermodule_holder</code></a></big>
 </p>




+
 <h2><a name="intermodule_holder_synopsis">Header
</a><a href="../../../../boost/flyweight/intermodule_holder.hpp"><code>"boost/flyweight/intermodule_holder.hpp"</code></a> synopsis &nbsp;</h2>

+
<h2>头文件<a href="file:///boost/flyweight/intermodule_holder.hpp"><code>"boost/flyweight/intermodule_holder.hpp"</code></a>大 意</h2>




+
<h3><a name="intermodule_holder_class">Class template <code>intermodule_holder_class &nbsp;类模板 intermodule_holder_class</code></a></h3>




+
 <p>
 <code>intermodule_holder_class&lt;C&gt;</code> maintains a <code>C</code>
instance which is unique even across different dynamically linked modules of
@@ -469,69 +572,83 @@
 in different dynamic modules of a program.</p>


+
<p><big><code>intermodule_holder_class&lt;C&gt;</code></big>维护着一个 <big><code>C</code></big>的实例,该实例即使是在使用该类型的程序的不同的动态 链接的模块间也是唯一的。通常,<big><a href="holders.html#static_holder_class"><code>static_holder_class</code></a></big>没 有提供这种保证,因为绝大多数的C++实现不能合并一个程序的不同的动态模块中重复 的静态变量。
 </p>




+
<h3><a name="intermodule_holder">Class <code>intermodule_holder &nbsp;类 intermodule_holder</code></a></h3>




+
 <p>
<a href="#holder"><code>Holder Specifier</code></a> for <a href="#intermodule_holder_class"><code>intermodule_holder_class</code></a>. &nbsp;</p>
+
<p><big><a href="holders.html#intermodule_holder_class"><code>intermodule_holder_class</code></a></big>的 <a href="holders.html#holder"><code><big>Holder</big> </code>描述符 <code></code></a>
 </p>




+
 <hr>

<div class="prev_link"><a href="factories.html"><img src="../prev.gif" alt="factories" border="0"><br>



+
 Factories
 </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="locking.html"><img src="../next.gif" alt="locking policies" border="0"><br>



+
 Locking policies
 </a></div>


+
 <br style="" clear="all">




+
 <br>




+
 <p>Revised August 11th 2008</p>




-<p>© Copyright 2006-2008 Joaquín M López Muñoz.
+
+<p>&copy; Copyright 2006-2008 Joaqu&iacute;n M L&oacute;pez Mu&ntilde;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";>
@@ -541,4 +658,6 @@



-</body></html>
\ No newline at end of file
+
+</body>
+</html>

Modified: trunk/libs/flyweight/doc/reference/locking.html
==============================================================================
--- trunk/libs/flyweight/doc/reference/locking.html     (original)
+++ trunk/libs/flyweight/doc/reference/locking.html     Fri Apr 10 04:07:11 2009
@@ -1,8 +1,11 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
-<html><head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
+<html>
+<head>



+
+


   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -10,77 +13,99 @@



+





- <title>Boost.Flyweight Documentation - Locking policies reference</title><link rel="stylesheet" href="../style.css" type="text/css">
+
+  <title>Boost.Flyweight Documentation - Locking policies reference</title>
+  <link rel="stylesheet" href="../style.css" type="text/css">
+





+
   <link rel="start" href="../index.html">



+
+


   <link rel="prev" href="factories.html">



+
+


   <link rel="up" href="index.html">



+
+


-  <link rel="next" href="tracking.html"></head>
+  <link rel="next" href="tracking.html">
+</head>
+
 <body>



+
<h1><img src="../../../../boost.png" alt="Boost logo" align="middle" height="86" width="277">Boost.Flyweight
 Locking policies reference</h1>




+
<div class="prev_link"><a href="holders.html"><img src="../prev.gif" alt="holders" border="0"><br>



+
 Holders
 </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="tracking.html"><img src="../next.gif" alt="tracking policies" border="0"><br>



+
 Tracking policies
 </a></div>


+
 <br style="" clear="all">




+
 <hr>

 <h2>Contents &nbsp;目录</h2>
@@ -88,20 +113,25 @@



+
 <ul>



-  <li><a href="#preliminary">Preliminary concepts</a></li>
+
+  <li><a href="#preliminary">Preliminary concepts &nbsp;预备概念</a></li>



-  <li><a href="#locking">Locking policies</a></li>
+
+  <li><a href="#locking">Locking policies &nbsp;锁定策略</a></li>
+



   <li><a href="#locking_tag_synopsis">Header
-    <code>"boost/flyweight/locking_tag.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/locking_tag.hpp"</code> synopsis &nbsp;头文 件"boost/flyweight/locking_tag.hpp"大意</a>
+



@@ -109,33 +139,41 @@



- <li><a href="#is_locking">Class template <code>is_locking</code></a></li>
+
+ <li><a href="#is_locking">Class template <code>is_locking &nbsp;类模 板is_locking</code></a></li>
+



- <li><a href="#locking_construct">Class template <code>locking</code></a></li> + <li><a href="#locking_construct">Class template <code>locking &nbsp;类模板locking</code></a></li>



+
+



     </ul>


+

   </li>



+
   <li><a href="#simple_locking_fwd_synopsis">Header
-    <code>"boost/flyweight/simple_locking_fwd.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/simple_locking_fwd.hpp"</code> synopsis &nbsp;头 文件"boost/flyweight/simple_locking_fwd.hpp"大意</a>
   </li>



+
   <li><a href="#simple_locking_synopsis">Header
-    <code>"boost/flyweight/simple_locking.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/simple_locking.hpp"</code> synopsis &nbsp;头文 件"boost/flyweight/simple_locking.hpp"大意</a>
+



@@ -143,29 +181,36 @@



- <li><a href="#simple_locking">Class <code>simple_locking</code></a></li>
+
+ <li><a href="#simple_locking">Class <code>simple_locking &nbsp;类 simple_locking</code></a></li>



+
+



     </ul>


+

   </li>



+
   <li><a href="#no_locking_fwd_synopsis">Header
-    <code>"boost/flyweight/no_locking_fwd.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/no_locking_fwd.hpp"</code> synopsis &nbsp;头文 件"boost/flyweight/no_locking_fwd.hpp"大意</a>
   </li>



+
   <li><a href="#no_locking_synopsis">Header
-    <code>"boost/flyweight/no_locking.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/no_locking.hpp"</code> synopsis &nbsp;头文 件"boost/flyweight/no_locking.hpp"大意</a>
+



@@ -173,31 +218,38 @@



-      <li><a href="#no_locking">Class <code>no_locking</code></a></li>
+
+ <li><a href="#no_locking">Class <code>no_locking &nbsp;类 no_locking</code></a></li>



+
+



     </ul>


+

   </li>



+
 </ul>




+
 <h2><a name="preliminary">Preliminary concepts &nbsp;预备概念</a></h2>




+
 <p>
A <i>mutex</i> is a type whose objects can be in either of two states, called
 locked and unlocked, with the property that when a thread A has locked a
@@ -211,12 +263,14 @@
 type associated to some mutex type whose objects do the locking/unlocking
 of a mutex on construction/destruction time.</p>

+
<p><big><i>mutex</i></big>类型的对象只能处在2种状态之一,锁定或者未锁定,这 种对象的特性是:当线程A已经锁定了互斥体<big><code>m</code></big>而另外一个线 程B尝试锁定<big><code>m</code></big>时,B会被阻塞直到A解锁 <big><code>m</code></big>。 另外,如果一个线程可以在它已经锁定的互斥体上成功 调用锁定操作,该互斥体就被说成是支持<span style="font-style: italic;">递归锁 定</span>的;在这种情况下,线程在互斥体上执行了多少锁定操作就要执行同样多的 解锁操作才能让互斥体成功解锁。<span style="font-style: italic;">范围锁 </span>是与某个互斥类型相关的类型,该类型的对象在构造/析构的时候对一个互斥体 进行锁定/解锁。
 </p>




+
 <p>
 In the following table, <code>Mutex</code> is a mutex type, <code>m</code>
 is an object of type <code>Mutex</code>, <code>Lock</code> is a scoped lock
@@ -226,122 +280,153 @@
 </p>


+
 <p style="text-align: left;">
在下面这个表格里,<big><code>Mutex</code></big>是一个互斥体类 型,<big><code>m</code></big>是一个<big><code>Mutex</code></big>类型的对 象,<big><code>Lock</code></big>是关联到<big><code>Mutex</code></big>的一个 范围锁,<big><code>lk</code></big>是<big><code>Lock</code></big>类型的一个 值。</p>


+
 <table cellspacing="0">



+
   <caption><b>Mutex and Scoped Lock requirements.</b></caption>
   <tbody>


+
     <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>Mutex m;</code></td>



+
   <td>&nbsp;</td>



+
   <td>Post: <code>m</code> is unlocked.
   </td>



+
     </tr>



+
     <tr class="odd_tr">



+
   <td><code>(&amp;m)-&gt;~Mutex();</code></td>



+
   <td><code>void</code></td>



+
   <td>Pre: <code>m</code> is unlocked.</td>



+
     </tr>



+
     <tr>



+
   <td><code>Lock lk(m);</code></td>



+
   <td>&nbsp;</td>



+
<td>Associates <code>m</code> to <code>lk</code> and locks <code>m</code>.</td>



+
     </tr>



+
     <tr class="odd_tr">



+
   <td><code>(&amp;lk)-&gt;~Lock();</code></td>



+
   <td><code>void</code></td>



+
   <td>Unlocks the mutex associated to <code>lk</code>.</td>



+
     </tr>



+
+


   </tbody>
@@ -351,6 +436,7 @@



+
 <p>
 These concepts are very similar, but not entirely equivalent, to
 the homonym ones described in the
@@ -358,6 +444,7 @@
 Library</a>.</p>


+
<p>这些概念同<a href="../../../../doc/html/thread/synchronization.html#thread.synchronization.mutex_concepts">Boost Thread
 Library</a>里描述的同名概念非常相似,但不完全等同。
 </p>
@@ -365,11 +452,13 @@



+
 <h2><a name="locking">Locking policies &nbsp;锁定策略</a></h2>




+
 <p>
 <i>Locking policies</i> describe a mutex type and an associated
 scoped lock type.
@@ -378,39 +467,48 @@
 <a href="factories.html#factory">factory</a>.</p>


+
<p><span style="font-style: italic;">锁定策略</span>描述了一个互斥体类型和 它相关的范围锁类型。<big><a href="flyweight.html#flyweight"><code>flyweight</code></a></big>使用一种给定 的锁定策略来同步到它的内部<a href="factories.html#factory">factory</a>的访 问。
 </p>




+
 <p>
A type <code>Locking</code> is a locking policy if: &nbsp;类型 <code>Locking</code>是一种锁定策略如果:
 </p>


+
 <ul>



+
<li>One of the following conditions is satisfied: &nbsp;满足以下条件之 一:



+
     <ol type="a">



+
<li><a href="#is_locking"><code>is_locking&lt;Locking&gt;::type</code></a> is <a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a>, &nbsp; &nbsp;<a href="locking.html#is_locking"><code>is_locking&lt;Locking&gt;::type</code></a>是 <a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a></li>



+
       <li><code>Locking</code> is of the form
<a href="#tracking_construct"><code>locking&lt;Locking'&gt;</code></a>. &nbsp;<code>Locking</code>的格式是<a href="locking.html#tracking_construct"><code>locking&lt;Locking'&gt;</code></a></li>



+
+



@@ -418,23 +516,29 @@



+
   </li>



+
   <li>The type <code>Locking::mutex_type</code> (or
     <code>Locking'::mutex_type</code> if (b) applies) is a
     model of <a href="#preliminary"><code>Mutex</code></a>
     and supports recursive locking.</li>

+
 </ul>

+
<div style="text-align: left; margin-left: 40px;">类型 <code>Locking::mutex_type</code>(在条件b时是 <code>Locking'::mutex_type</code>)是<a href="#preliminary">互斥体</a>的一个 模型并且支持递归锁定</div>

+
 <ul>



+
   <li>The type <code>Locking::lock_type</code> (or
     <code>Locking'::lock_type</code> if (b) applies) is a
     <a href="#preliminary"><code>Scoped Lock</code></a> of
@@ -442,20 +546,26 @@



+
 </ul>

+
<div style="margin-left: 40px;">类型<code>Locking::lock_type</code>(在条件 b时是<code>Locking'::lock_type</code>)是一个上文提到的互斥体的<a href="#preliminary">范围锁</a></div>

+
 <h2><a name="locking_tag_synopsis">Header
</a><a href="../../../../boost/flyweight/locking_tag.hpp"><code>"boost/flyweight/locking_tag.hpp"</code></a> synopsis &nbsp;</h2>
+
<h2>头文件<a href="../../../../boost/flyweight/locking_tag.hpp"><code>"boost/flyweight/locking_tag.hpp"</code></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>
@@ -473,16 +583,19 @@
<span class="special">}</span> <span class="comment">// namespace boost</span> </pre>


+
 </blockquote>




+
<h3><a name="is_locking">Class template <code>is_locking &nbsp;类模板 is_locking</code></a></h3>




+
 <p>
 Unless specialized by the user, <code>is_locking&lt;T&gt;::type</code> is
<a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a>
@@ -491,40 +604,48 @@
 otherwise.</p>


+
<p>除非用户进行了专门化,如果<big><code>T</code></big>如是从 <big><code>locking_marker</code></big>派生 的,<big><code>is_locking&lt;T&gt;::type</code></big>是<big><a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a></big>,否 则是<big><a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::false_</code></a></big>。
 </p>




+
<h3><a name="locking_construct">Class template <code>locking &nbsp;类模板 locking</code></a></h3>




+
 <p>
 <code>locking&lt;T&gt;</code> is a syntactic construct meant to indicate
 that <code>T</code> is a locking policy without resorting to the
 mechanisms provided by the <code>is_locking</code> class template.</p>


+
<p><big><code>locking&lt;T&gt;</code></big> 是一种用于表明<code>T</code>是 一种锁定策略的语法机制, 此时不需要借助<big><code>is_locking</code></big>类 模板提供的机制。
 </p>




+
 <h2><a name="simple_locking_fwd_synopsis">Header
</a><a href="../../../../boost/flyweight/simple_locking_fwd.hpp"><code>"boost/flyweight/simple_locking_fwd.hpp"</code></a> synopsis &nbsp;</h2>

+
<h2>&nbsp; &nbsp; 头文件<a href="file:///boost/flyweight/simple_locking_fwd.hpp"><code>"boost/flyweight/simple_locking_fwd.hpp"</code></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>
@@ -536,36 +657,43 @@
<span class="special">}</span> <span class="comment">// namespace boost</span> </pre>


+
 </blockquote>




+
 <p>
 <code>simple_locking_fwd.hpp</code> forward declares the class
 <a href="#simple_locking"><code>simple_locking</code></a>.</p>


+
<p><big><code>simple_locking_fwd.hpp</code></big>前向声明类<big><a href="locking.html#simple_locking"><code>simple_locking</code></a></big>&nbsp;
 </p>




+
 <h2><a name="simple_locking_synopsis">Header
</a><a href="../../../../boost/flyweight/simple_locking.hpp"><code>"boost/flyweight/simple_locking.hpp"</code></a> synopsis &nbsp;</h2>

+
<h2>&nbsp; &nbsp; 头文件<a href="file:///boost/flyweight/simple_locking.hpp"><code>"boost/flyweight/simple_locking.hpp"</code></a>大 意</h2>




+
<h3><a name="simple_locking">Class <code>simple_locking 类 simple_locking</code></a></h3>





+
 <p>
 <a href="#locking"><code>Locking Policy</code></a> that specifies a basic
 mutex type based on the simplest synchronization mechanisms provided by
@@ -573,23 +701,28 @@
 <code>simple_locking</code> specifies a dummy type without actual
synchronization capabilities.<a href="locking.html#locking"><code></code></a></p>

+
<p><a href="locking.html#locking"><code></code></a>这种<a href="#locking">锁定策略</a>指定的基本互斥对象基于环境所能提供的最简单的同步 机制。当线程功能不可用时,<code>simple_locking</code>描述的是一个没有实际同 步能力的空类型。
 </p>




+
 <h2><a name="no_locking_fwd_synopsis">Header
</a><a href="../../../../boost/flyweight/no_locking_fwd.hpp"><code>"boost/flyweight/no_locking_fwd.hpp"</code></a> synopsis &nbsp;</h2>

+
<h2>&nbsp; &nbsp; 头文件<a href="file:///boost/flyweight/no_locking_fwd.hpp"><code>"boost/flyweight/no_locking_fwd.hpp"</code></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>
@@ -601,35 +734,42 @@
<span class="special">}</span> <span class="comment">// namespace boost</span> </pre>


+
 </blockquote>




+
 <p>
 <code>no_locking_fwd.hpp</code> forward declares the class
 <a href="#no_locking"><code>no_locking</code></a>.</p>


+
<p><big><code>no_locking_fwd.hpp</code></big>前向声明类<big><a href="locking.html#no_locking"><code>no_locking</code></a></big>。
 </p>




+
 <h2><a name="no_locking_synopsis">Header
</a><a href="../../../../boost/flyweight/no_locking.hpp"><code>"boost/flyweight/no_locking.hpp"</code></a> synopsis &nbsp;</h2>

+
<h2>&nbsp; &nbsp; 头文件<a href="file:///boost/flyweight/no_locking.hpp"><code>"boost/flyweight/no_locking.hpp"</code></a>大 意</h2>




+
<h3><a name="no_locking">Class&nbsp;<code>no_locking &nbsp;类 no_locking</code></a></h3>




+
 <p>
Null <a href="#locking"><code>Locking Policy</code></a>: it specifies a dummy
 type that satisfies the formal requirements for the
@@ -638,56 +778,67 @@
 environments.</p>


+
<p>空的<a href="#locking">锁定策略</a><span style="font-family: monospace;"><span style="text-decoration: underline;"></span></span><a href="locking.html#locking"><code></code></a>:它描述的空类型满足了<a href="locking.html#preliminary"><code>Mutex</code></a>概念形式上的要求却不阻 塞线程。<big><code>no_locking</code></big>只应该在单线程环境下使用。
 </p>




+
 <hr>

<div class="prev_link"><a href="holders.html"><img src="../prev.gif" alt="holders" border="0"><br>



+
 Holders
 </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="tracking.html"><img src="../next.gif" alt="tracking policies" border="0"><br>



+
 Tracking policies
 </a></div>


+
 <br style="" clear="all">




+
 <br>




+
 <p>Revised January 27th 2009</p>




-<p>© Copyright 2006-2009 Joaquín M López Muñoz.
+
+<p>&copy; Copyright 2006-2009 Joaqu&iacute;n M L&oacute;pez Mu&ntilde;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";>
@@ -697,4 +848,6 @@



-</body></html>
\ No newline at end of file
+
+</body>
+</html>

Modified: trunk/libs/flyweight/doc/reference/tracking.html
==============================================================================
--- trunk/libs/flyweight/doc/reference/tracking.html    (original)
+++ trunk/libs/flyweight/doc/reference/tracking.html Fri Apr 10 04:07:11 2009
@@ -1,8 +1,11 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
-<html><head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
+<html>
+<head>



+
+


   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -10,77 +13,99 @@



+





- <title>Boost.Flyweight Documentation - Tracking policies reference</title><link rel="stylesheet" href="../style.css" type="text/css">
+
+ <title>Boost.Flyweight Documentation - Tracking policies reference</title>
+  <link rel="stylesheet" href="../style.css" type="text/css">
+





+
   <link rel="start" href="../index.html">



+
+


   <link rel="prev" href="locking.html">



+
+


   <link rel="up" href="index.html">



+
+


-  <link rel="next" href="../performance.html"></head>
+  <link rel="next" href="../performance.html">
+</head>
+
 <body>



+
<h1><img src="../../../../boost.png" alt="Boost logo" align="middle" height="86" width="277">Boost.Flyweight
 Tracking policies reference</h1>




+
<div class="prev_link"><a href="locking.html"><img src="../prev.gif" alt="locking policies" border="0"><br>



+
 Locking policies
 </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="../performance.html"><img src="../next.gif" alt="performance" border="0"><br>



+
 Performance
 </a></div>


+
 <br style="" clear="all">




+
 <hr>

 <h2>Contents &nbsp;目录</h2>
@@ -88,20 +113,25 @@



+
 <ul>



-  <li><a href="#preliminary">Preliminary concepts</a></li>

+  <li><a href="#preliminary">Preliminary concepts &nbsp;预备概念</a></li>


-  <li><a href="#tracking">Tracking policies</a></li>
+
+
+  <li><a href="#tracking">Tracking policies &nbsp;跟踪策略</a></li>
+



   <li><a href="#tracking_tag_synopsis">Header
-    <code>"boost/flyweight/tracking_tag.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/tracking_tag.hpp"</code> synopsis &nbsp;头文 件"boost/flyweight/tracking_tag.hpp"大意</a>
+



@@ -109,33 +139,41 @@



- <li><a href="#is_tracking">Class template <code>is_tracking</code></a></li>

+ <li><a href="#is_tracking">Class template <code>is_tracking &nbsp;类 模板is_tracking</code></a></li>


- <li><a href="#tracking_construct">Class template <code>tracking</code></a></li>
+
+
+ <li><a href="#tracking_construct">Class template <code>tracking &nbsp;类模板tracking</code></a></li>
+






+
     </ul>


+

   </li>



+
   <li><a href="#refcounted_fwd_synopsis">Header
-    <code>"boost/flyweight/refcounted_fwd.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/refcounted_fwd.hpp"</code> synopsis &nbsp;头文 件"boost/flyweight/refcounted_fwd.hpp"大意</a>
   </li>



+
   <li><a href="#refcounted_synopsis">Header
-    <code>"boost/flyweight/refcounted.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/refcounted.hpp"</code> synopsis &nbsp;头文 件"boost/flyweight/refcounted.hpp"大意</a>
+



@@ -143,29 +181,36 @@



-      <li><a href="#refcounted">Class <code>refcounted</code></a></li>
+
+ <li><a href="#refcounted">Class <code>refcounted &nbsp;类 refcounted</code></a></li>



+
+



     </ul>


+

   </li>



+
   <li><a href="#no_tracking_fwd_synopsis">Header
-    <code>"boost/flyweight/no_tracking_fwd.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/no_tracking_fwd.hpp"</code> synopsis &nbsp;头文 件"boost/flyweight/no_tracking_fwd.hpp"大意</a>
   </li>



+
   <li><a href="#no_tracking_synopsis">Header
-    <code>"boost/flyweight/no_tracking.hpp"</code> synopsis</a>
+ <code>"boost/flyweight/no_tracking.hpp"</code> synopsis &nbsp;头文 件"boost/flyweight/no_tracking.hpp"大意</a>
+



@@ -173,31 +218,38 @@



-      <li><a href="#no_tracking">Class <code>no_tracking</code></a></li>
+
+ <li><a href="#no_tracking">Class <code>no_tracking &nbsp;类 no_tracking</code></a></li>



+
+



     </ul>


+

   </li>



+
 </ul>




+
 <h2><a name="preliminary">Preliminary concepts &nbsp;预备概念</a></h2>




+
 <p>
A <i>tracking policy helper</i> provides access to some of the functionality
 of a <a href="factories.html#factory">factory</a> so as to be used
@@ -215,81 +267,102 @@



+
 <p style="text-align: left;">
一个<span style="font-style: italic;">跟踪策略辅助器</span>提供到<a href="factories.html#factory">工厂</a>的某些功能的访问以便用来实现一个相关的 <a href="#tracking">跟踪策略</a>。在下面这个表格 里,<big><code>TrackingHelper</code></big>是一个与存储 <big><code>Entry</code></big>类型元素的<a href="factories.html#factory">工厂 </a><big><code>Factory</code></big>相关的跟踪策略辅助 器,<big><code>h</code></big>是一个与 <big><code>Factory&nbsp;</code><code>f</code></big>相关的 <big><code>Factory::handle_type</code></big>的 值,<big><code>check</code></big>是一个<code>Checker</code>带有 <code><big>Factory::handle_type</big></code>参数类型的<a href="http://www.sgi.com/tech/stl/Predicate.html";>断言</a><code></code></p>


+
 <table cellspacing="0">



+
   <caption><b>Tracking Policy Helper requirements.</b></caption>
   <tbody>


+
     <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>TrackingHelper::entry(h);</code></td>



+
   <td><code>const Entry&amp;</code></td>



+
   <td>Returns <code>f.entry(h)</code>.</td>



+
     </tr>



+
     <tr class="odd_tr">



+
   <td><code>TrackingHelper::erase(h,check);</code></td>



+
   <td><code>void</code></td>



+
   <td>If <code>check(h)</code>, invokes <code>f.erase(h)</code>.</td>



+
     </tr>



+
+


   </tbody>
@@ -299,6 +372,7 @@



+
 <p>
 The execution of <code>TrackingHelper::erase</code> (including the
 invocation of <code>check(h)</code>) is done in a
@@ -306,13 +380,16 @@
simultaneously accessing the factory's insertion or deletion facilities.</p>


+
<p><big><code>TrackingHelper::erase</code></big>(包括 <big><code>check(h)</code></big>的调用)的执行是在同步的方式下进行的,目的是 阻止其它的执行线程同时访问工厂的插入或者删除功能。
 </p>




-<h2><a name="tracking">Tracking policies &nbsp;跟踪策略带有 <code><big>Factory::handle_type</big></code>参数类型</a></h2>
+
+<h2><a name="tracking">Tracking policies &nbsp;跟踪策略</a></h2>
+



@@ -326,40 +403,49 @@
 <a href="factories.html#factory">factory</a>.</p>


+
<p>一个<span style="font-style: italic;">跟踪策略</span>定义了当关联到一个 给定值的所有flyweight对象都销毁的时候一个<a href="flyweight.html#flyweight"><code>flyweight</code></a>实例该遵循的策略。 跟踪策略为<code>flyweight</code>内部<a href="factories.html#factory">工厂 </a>的定义引入了一些必要的类型信息。
 </p>




+
 <p>
A type <code>Tracking</code> is a tracking policy if: &nbsp;一个 <code>Tracking</code>类型是一个跟踪策略如果:
 </p>


+
 <ul>



+
<li>One of the following conditions is satisfied: &nbsp;满足以下条件之 一:



+
     <ol type="a">



+
<li><a href="#is_tracking"><code>is_tracking&lt;Tracking&gt;::type</code></a> is <a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a>, &nbsp;<a href="tracking.html#is_tracking"><code>is_tracking&lt;Tracking&gt;::type</code></a> <a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a></li>



+
       <li><code>Tracking</code> is of the form
<a href="#tracking_construct"><code>tracking&lt;Tracking'&gt;</code></a>. &nbsp;<code>Tracking</code>的格式是<a href="tracking.html#tracking_construct"><code>tracking&lt;Tracking'&gt;</code></a></li>



+
+



@@ -367,10 +453,12 @@



+
   </li>



+
   <li>The expression <code>Tracking::entry_type</code> (or
     <code>Tracking'::entry_type</code> if (b) applies) is an
<a href="../../../mpl/doc/refmanual/lambda-expression.html"><code>MPL Lambda
@@ -383,17 +471,21 @@
     and <code>const Key&amp;</code>.</li>


+
 </ul>


+
<div style="margin-left: 40px;">表达式 <big><code>Tracking::entry_type</code></big>(或者 <big><code>Tracking'::entry_type</code></big>如果条件b适用时)是一个<a href="../../../mpl/doc/refmanual/lambda-expression.html"><code><big>MPL Lambda</big> <big>表达式</big></code></a>,当用各种类型 (<code>Value,</code><code>Key</code><code>,<big>这个</big>Value</code>是 <code></code><a href="http://www.sgi.com/tech/stl/Assignable.html";>可赋值 </a>的并且可以隐式转换成<big><code>const Key&amp;</code></big>)调用它 时,<code></code>得到一个<a href="http://www.sgi.com/tech/stl/Assignable.html";>可赋值</a>的类型 <code><big>Entry</big>,</code>它可以隐式转换成<big><code>const Value&amp;</code></big>和<code><big>const Key&amp;</big></code></div>


+
 <ul>



+
   <li>The expression <code>Tracking::handle_type</code> (or
     <code>Tracking'::handle_type</code> if (b) applies) is an
<a href="../../../mpl/doc/refmanual/lambda-expression.html"><code>MPL Lambda
@@ -412,27 +504,34 @@



+
 </ul>


+
<div style="margin-left: 40px;">表达式 <big><code>Tracking::handle_type</code></big>(或者 <big><code>Tracking'::handle_type</code></big>如果条件b适用时)是一个<a href="../../../mpl/doc/refmanual/lambda-expression.html"><code><big>MPL Lambda</big> <big>表达式</big></code></a>;当用类型 (<code><big>InternalHandle</big></code>,<big><a href="tracking.html#preliminary"><code>TrackingHelper</code></a></big>&nbsp;其 中<big><code>InternalHandle</code></big>是<a href="http://www.sgi.com/tech/stl/Assignable.html";>可赋值</a>的,并且保证拷 贝和赋值时不抛出异常)调用它时,得到一个<a href="http://www.sgi.com/tech/stl/Assignable.html";>可赋值</a>的类型 <big><code>Handle</code></big>,该类型同样保证拷贝和赋值提供不抛出异常,并且 可以从<big><code>InternalHandle</code></big>构造而来或者隐式转换成 <big><code>InternalHandle</code></big>。在调用 <big><code>Tracking::handle_type</code></big>时 <code><big>TrackingHelpe</big>r</code>是一个不完整的类型。<br>
+
 <br>


+
 </div>



+
<code>Tracking::handle_type</code> is parameterized by a helper that provides
 access to some of the functionality of the factory associated to the
tracking policy. This factory's associated entry and handle types are the types
 <code>Entry</code> and <code>Handle</code> defined above, respectively.<br>


+
 <br>


+
<big><code>Tracking::handle_type</code></big>由辅助器来参数化,这个帮手提供 到与跟踪策略相关的工厂的某些功能的访问。工厂相关的entry和handle类型分别是上 面定义的<big><code>Entry</code></big>和<big><code>Handle</code></big>类型。


@@ -440,14 +539,17 @@
</a><a href="../../../../boost/flyweight/tracking_tag.hpp"><code>"boost/flyweight/tracking_tag.hpp"</code></a> synopsis &nbsp;</h2>


+
<h2>头文件<a name="tracking_tag_synopsis"></a><a href="file:///boost/flyweight/tracking_tag.hpp"><code>"boost/flyweight/tracking_tag.hpp"</code></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>
@@ -465,16 +567,19 @@
<span class="special">}</span> <span class="comment">// namespace boost</span> </pre>


+
 </blockquote>




+
<h3><a name="is_tracking">Class template <code>is_tracking &nbsp;类模板 is_tracking</code></a></h3>




+
 <p>
 Unless specialized by the user, <code>is_tracking&lt;T&gt;::type</code> is
<a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a>
@@ -483,41 +588,49 @@
 otherwise.</p>


+
<p>除非被用户专门化,如果<code>T</code>是从 <big><code>tracking_marker</code></big>派生 的,<big><code>is_tracking&lt;T&gt;::type</code></big>是<big><a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::true_</code></a></big>,否 则是<big><a href="../../../mpl/doc/refmanual/bool.html"><code>boost::mpl::false_</code></a></big>
 </p>




+
<h3><a name="tracking_construct">Class template <code>tracking &nbsp;类模 板 tracking</code></a></h3>




+
 <p>
 <code>tracking&lt;T&gt;</code> is a syntactic construct meant to indicate
 that <code>T</code> is a tracking policy without resorting to the
 mechanisms provided by the <code>is_tracking</code> class template.</p>


+
<p><big><code>tracking&lt;T&gt;</code></big>是一种表明<code>T</code>是一个 跟踪策略的语法构造,这样就不需要借助于<big><code>is_tracking</code></big>类 模板提供的机制。
 </p>




+
 <h2><a name="refcounted_fwd_synopsis">Header
</a><a href="../../../../boost/flyweight/refcounted_fwd.hpp"><code>"boost/flyweight/refcounted_fwd.hpp"</code></a> synopsis &nbsp;</h2>


+
<h2>头文件<a href="file:///boost/flyweight/refcounted_fwd.hpp"><code>"boost/flyweight/refcounted_fwd.hpp"</code></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>
@@ -529,36 +642,43 @@
<span class="special">}</span> <span class="comment">// namespace boost</span> </pre>


+
 </blockquote>




+
 <p>
 <code>refcounted_fwd.hpp</code> forward declares the class
 <a href="#refcounted"><code>refcounted</code></a>.</p>


+
<p><big><code>refcounted_fwd.hpp</code></big>前向声明了类<big><a href="tracking.html#refcounted"><code>refcounted</code></a></big>
 </p>




+
 <h2><a name="refcounted_synopsis">Header
</a><a href="../../../../boost/flyweight/refcounted.hpp"><code>"boost/flyweight/refcounted.hpp"</code></a> synopsis &nbsp;</h2>


+
<h2>头文件<a href="file:///boost/flyweight/refcounted.hpp"><code>"boost/flyweight/refcounted.hpp"</code></a>大 意</h2>




+
<h3><a name="refcounted">Class <code>refcounted &nbsp;类 refcounted</code></a></h3>




+
 <p>
 <a href="#tracking"><code>Tracking Policy</code></a> providing
 <a href="flyweight.html#flyweight"><code>flyweight</code></a>
@@ -568,24 +688,29 @@
 <a href="factories.html#factory">factory</a>.</p>


+
<p>这种<a href="#tracking">跟踪策略</a>提供<big><a href="flyweight.html#flyweight"><code>flyweight</code></a></big>实例引用计数 的机制:当关联到一个给定值的所有flyweight对象销毁后,相应的entry从 <big><code>flyweight</code></big>的内部<a href="factories.html#factory">工厂 </a>中清除。
 </p>




+
 <h2><a name="no_tracking_fwd_synopsis">Header
</a><a href="../../../../boost/flyweight/no_tracking_fwd.hpp"><code>"boost/flyweight/no_tracking_fwd.hpp"</code></a> synopsis &nbsp;</h2>


+
<h2>头文件<a href="file:///boost/flyweight/no_tracking_fwd.hpp"><code>"boost/flyweight/no_tracking_fwd.hpp"</code></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>
@@ -597,92 +722,110 @@
<span class="special">}</span> <span class="comment">// namespace boost</span> </pre>


+
 </blockquote>




+
 <p>
 <code>no_tracking_fwd.hpp</code> forward declares the class
 <a href="#no_tracking"><code>no_tracking</code></a>.</p>


+
<p><big><code>no_tracking_fwd.hpp</code></big>前向声明了类<big><a href="tracking.html#no_tracking"><code>no_tracking</code></a></big>
 </p>




+
 <h2><a name="no_tracking_synopsis">Header
</a><a href="../../../../boost/flyweight/no_tracking.hpp"><code>"boost/flyweight/no_tracking.hpp"</code></a> synopsis &nbsp;</h2>


+
<h2>头文件<a href="file:///boost/flyweight/no_tracking.hpp"><code>"boost/flyweight/no_tracking.hpp"</code></a>大 意</h2>




+
<h3><a name="no_tracking">Class <code>no_tracking &nbsp;类 no_tracking</code></a></h3>




+
 <p>
Null <a href="#tracking"><code>Tracking Policy</code></a>: elements inserted into <code>flyweight</code>'s internal <a href="factories.html#factory">factory</a>
 are not erased until program termination.</p>


+
<p>空的<a href="#tracking">跟踪策略</a>,插入到 <big><code>flyweight</code></big>的内部<a href="factories.html#factory">工厂 </a>的元素直到程序结束时才清除
 </p>




+
 <hr>

<div class="prev_link"><a href="locking.html"><img src="../prev.gif" alt="locking policies" border="0"><br>



+
 Locking policies
 </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="../performance.html"><img src="../next.gif" alt="performance" border="0"><br>



+
 Performance
 </a></div>


+
 <br style="" clear="all">




+
 <br>




+
 <p>Revised August 18th 2008</p>




-<p>© Copyright 2006-2008 Joaquín M López Muñoz.
+
+<p>&copy; Copyright 2006-2008 Joaqu&iacute;n M L&oacute;pez Mu&ntilde;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";>
@@ -692,4 +835,6 @@



-</body></html>
\ No newline at end of file
+
+</body>
+</html>

Modified: trunk/libs/flyweight/doc/release_notes.html
==============================================================================
--- trunk/libs/flyweight/doc/release_notes.html (original)
+++ trunk/libs/flyweight/doc/release_notes.html Fri Apr 10 04:07:11 2009
@@ -1,66 +1,103 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
-<html><head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
-<title>Boost.Flyweight Documentation - Release notes</title><link rel="stylesheet" href="style.css" type="text/css">
-<link rel="start" href="index.html">
-<link rel="prev" href="future_work.html">
-<link rel="up" href="index.html">
-<link rel="next" href="acknowledgements.html"></head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
+<html>
+<head>

+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+
+  <title>Boost.Flyweight Documentation - Release notes</title>
+  <link rel="stylesheet" href="style.css" type="text/css">
+
+  <link rel="start" href="index.html">
+
+  <link rel="prev" href="future_work.html">
+
+  <link rel="up" href="index.html">
+
+  <link rel="next" href="acknowledgements.html">
+</head>

 <body>
+
<h1><img src="../../../boost.png" alt="Boost logo" align="middle" height="86" width="277">Boost.Flyweight Release notes</h1>

+
<div class="prev_link"><a href="future_work.html"><img src="prev.gif" alt="future work" border="0"><br>
+
 Future work
 </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="acknowledgements.html"><img src="next.gif" alt="acknowledgements" border="0"><br>
+
 Acknowledgements
-</a></div><br style="" clear="all">
+</a></div>
+<br style="" clear="all">
+
 <br style="" clear="all">

+
 <hr>

-<h2>Contents</h2>
+<h2>Contents &nbsp;目录</h2>
+

 <ul>
+
   <li><a href="#boost_1_38">Boost 1.38 release</a></li>
+
 </ul>

-<h2><a name="boost_1_38">Boost 1.38 release</a></h2>
+
+<h2><a name="boost_1_38">Boost 1.38 release Boost 1.38 发布</a></h2>
+

 <p>
-</p><ul>
-  <li>Initial release of Boost.Flyweight.</li>
-</ul>
+</p>
+<ul>

+  <li>Initial release of Boost.Flyweight.</li>

+</ul>
+<div style="margin-left: 40px;">Boost.Flyweight首次发布</div>
 <hr>

<div class="prev_link"><a href="future_work.html"><img src="prev.gif" alt="future work" border="0"><br>
+
 Future work
 </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="acknowledgements.html"><img src="next.gif" alt="acknowledgements" border="0"><br>
+
 Acknowledgements
-</a></div><br style="" clear="all">
+</a></div>
+<br style="" clear="all">
+
 <br style="" clear="all">

+
 <br>

+
 <p>Revised August 27th 2008</p>

-<p>© Copyright 2006-2008 Joaquín M López Muñoz.
+
+<p>&copy; Copyright 2006-2008 Joaqu&iacute;n M L&oacute;pez Mu&ntilde;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>
\ No newline at end of file
+
+</body>
+</html>

Modified: trunk/libs/flyweight/doc/tutorial/extension.html
==============================================================================
--- trunk/libs/flyweight/doc/tutorial/extension.html    (original)
+++ trunk/libs/flyweight/doc/tutorial/extension.html Fri Apr 10 04:07:11 2009
@@ -1,64 +1,98 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
-<html><head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
+<html>
+<head>

+
+
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+



- <title>Boost.Flyweight Documentation - Tutorial - Extending Boost.Flyweight</title><link rel="stylesheet" href="../style.css" type="text/css">
+
+ <title>Boost.Flyweight Documentation - Tutorial - Extending Boost.Flyweight</title>
+  <link rel="stylesheet" href="../style.css" type="text/css">
+

+
   <link rel="start" href="../index.html">

+
+
   <link rel="prev" href="configuration.html">

+
+
   <link rel="up" href="index.html">

-  <link rel="next" href="technical.html"></head>
+
+
+  <link rel="next" href="technical.html">
+</head>
+
 <body>

+
<h1><img src="../../../../boost.png" alt="Boost logo" align="middle" height="86" width="277">Boost.Flyweight
 Tutorial: Extending Boost.Flyweight</h1>

+
<div class="prev_link"><a href="configuration.html"><img src="../prev.gif" alt="configuring Boost.Flyweight" border="0"><br>

+
 Configuring Boost.Flyweight
 </a></div>

+
<div class="up_link"><a href="index.html"><img src="../up.gif" alt="Boost.Flyweight tutorial" border="0"><br>

+
 Boost.Flyweight tutorial
 </a></div>

+
<div class="next_link"><a href="technical.html"><img src="../next.gif" alt="technical issues" border="0"><br>

+
 Technical issues
 </a></div>

+
 <br style="" clear="all">

+
 <hr>
 <h2>Contents &nbsp;目录</h2>

+
 <ul>

+
   <li><a href="#intro">Introduction &nbsp;简介</a></li>

+
   <li><a href="#factories">Custom factories
 &nbsp;定制工厂</a></li>

+
   <li><a href="#holders">Custom holders
 &nbsp;定制holders</a></li>

+
   <li><a href="#locking">Custom locking policies
 &nbsp;定制锁定策略</a></li>

+
   <li><a href="#tracking">Custom tracking policies
 &nbsp;定制跟踪策略</a></li>

+
 </ul>

+
 <h2><a name="intro">Introduction &nbsp;简介</a></h2>

+
 <p>
 Boost.Flyweight provides public interface specifications of
 its <a href="configuration.html">configurable aspects</a>
@@ -68,44 +102,58 @@
 instantiations of the <code>flyweight</code> class
 template.</p>

+
 <p>
Boost.Flyweight<span class="mn">规定</span>了它的<a href="configuration.html">可配置界面</a>的公共接 口标准,于是用户可以实现她们自己的组件,然后把它们提供给 <big><code>flyweight</code></big>类
 模板的实例来扩展这个库。
 </p>

+
 <p>
 In most cases there are two types of entities involved in extending a
 given
 aspect of Boost.Flyweight:</p>

+
 <p>在绝大多数情况下扩展Boost.Flyweight的某一界面时涉及到2种类型的实体
 </p>

+
 <ul>

+
   <li>The component itself (for instance, a factory class
 template).</li>

+
 </ul>

+
 <div style="margin-left: 40px;">组件本身(例如,一个工厂类模板)</div>

+
 <ul>

+
   <li>The associated <i>component specifier</i>,
which is the type provided as a template argument of a <code>flyweight</code>
 instantiation.</li>

+
 </ul>

+
<div style="margin-left: 40px;">相关的<span style="font-style: italic;">组 件描述符</span>,它是<big><span style="font-family: monospace;"></span></big>提供给<big><code>flyweight</code></big>实
 例的模板参数类型<br>

+
 <br>

+
 </div>

+
 For example, the type
 <a href="configuration.html#static_holder"><code>static_holder</code></a>
 is a holder specifier which is used by <code>flyweight</code>
@@ -124,8 +172,10 @@
 component
 appropriate for its internal needs.<br>

+
 <br>

+
例如,<big><a href="configuration.html#static_holder"><code>static_holder</code></a></big>类
 型是一个描述符,<big><code>flyweight</code></big>用它来生成实际
的holder类,这种情况下是<big><a href="../reference/holders.html#static_holder_class"><code>static_holder_class</code></a></big>类
@@ -136,18 +186,24 @@
 <h2><a name="factories">Custom factories
 &nbsp;定制工厂</a></h2>

+
 <p>
In a way, factories resemble unique associative containers like <code>std::set</code>,
 though their expected interface is much more concise:</p>

+
<p><span class="mn">在某种程度上,工厂类似于唯一关联容器比如 </span><big><code>std::set</code></big><span class="mn">,然而它们要求的接口 要简洁的多:</span>
 </p>

+
 <blockquote>
+
<pre><span class="comment">// example of a possible factory class template</span><br><br><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span><br><span class="keyword">class</span> <span class="identifier">custom_factory_class</span><br><span class="special">{</span><br><span class="keyword">public</span><span class="special">:</span><br><span class="keyword">&nbsp; typedef</span> <span class="special">...</span> <span class="identifier">handle_type</span><span class="special">;</span><br><br><span class="identifier">&nbsp; 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">&amp;</span> <span class="identifier">x</span><span class="special">);</span><br><span class="keyword">&nbsp; 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><br><span class="keyword">&nbsp; const</span> <span class="identifier">Entry</span><span class="special">&amp;</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><br><span class="special">};</span> </pre>

+
 </blockquote>

+
 <p>
 Factories are parameterized by <code>Entry</code> and <code>Key</code>:
 the first is the type of the objects stored, while the second is the
@@ -180,6 +236,7 @@
 for the formal
 definition of the <code>Factory</code> concept.</p>

+
 <p>工厂通过<big><code>Entry</code></big>和<big><code>Key</code></big>来
参数化:<big><code>Entry</code></big>是工厂存储的对象的类 型,<big><code>Key</code></big>是<big><code>flyweight</code></big>操 作的公开的键类型(<span class="mn">例 如,</span><big><code>flyweight&lt;std::string&gt;</code></big><span class="mn">或者 </span><big><code>flyweight&lt;key_value&lt;std::string,texture&gt;
@@ -199,6 +256,7 @@
 考</a>。
 </p>

+
 <p>
 Let us see an actual example of realization of a custom factory class.
 Suppose
@@ -209,24 +267,32 @@
 to the program console. We base the implementation of the repository
 functionality on a regular <code>std::set</code>:</p>

+
<p>让我们看一个实现了客户化工厂类的实际例子。假设我们想要跟踪 Boost.Flyweight对<big><code>insert()</code></big>和 <big><code>erase()</code></big>成 员函数的各种调用:这可以通过一个定制的工厂来做到,它的成员函数输出调试信息 到程序的控制台。我们基于一个普通的<big><code>std::set</code></big>实
 现存储桶的功能。
 </p>

+
 <blockquote>
+
<pre><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span><br><span class="keyword">class</span> <span class="identifier">verbose_factory_class</span><br><span class="special">{</span> <br>&nbsp; <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">Entry</span><span class="special">,</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span><span class="special">&lt;</span><span class="identifier">Key</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">store_type</span><span class="special">;</span><br><br><span class="identifier">&nbsp; store_type</span> <span class="identifier">store</span><span class="special">;</span><br><br><span class="keyword">public</span><span class="special">:</span><br><span class="keyword">&nbsp; typedef</span> <span class="keyword">typename</span> <span class="identifier">store_type</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">handle_type</span><span class="special">;</span><br><br><span class="identifier">&nbsp; 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">&amp;</span> <span class="identifier">x</span><span class="special">)</span><br><span class="special">&nbsp; {</span><br><span class="identifier">&nbsp; &nbsp; std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">handle_type</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span> <span class="identifier">p</span><span class="special">=</span><span class="identifier">store</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span><br><span class="keyword">&nbsp; &nbsp; if</span><span class="special">(</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">second</span><span class="special">){</span> <span class="comment">/* new entry */</span><br><span class="identifier">&nbsp; &nbsp; &nbsp; std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">&lt;&lt;</span><span class="string">"new: "</span><span class="special">&lt;&lt;(</span><span class="keyword">const</span> <span class="identifier">Key</span><span class="special">&amp;)</span><span class="identifier">x</span><span class="special">&lt;&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span><br><span class="special">&nbsp; &nbsp; }</span><br><span class="keyword">&nbsp; &nbsp; else</span><span class="special">{</span> <span class="comment">&nbsp; &nbsp; &nbsp; &nbsp; /* existing entry */</span><br><span class="identifier">&nbsp; &nbsp; &nbsp; std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">&lt;&lt;</span><span class="string">"hit: "</span><span class="special">&lt;&lt;(</span><span class="keyword">const</span> <span class="identifier">Key</span><span class="special">&amp;)</span><span class="identifier">x</span><span class="special">&lt;&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span><br><span class="special">&nbsp; &nbsp; }</span><br><span class="keyword">&nbsp; &nbsp; return</span> <span class="identifier">p</span><span class="special">.</span><span class="identifier">first</span><span class="special">;</span><br><span class="special">&nbsp; }</span><br><br><span class="keyword">&nbsp; 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><br><span class="special">&nbsp; {</span><br><span class="identifier">&nbsp; &nbsp; std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">&lt;&lt;</span><span class="string">"del: "</span><span class="special">&lt;&lt;(</span><span class="keyword">const</span> <span class="identifier">Key</span><span class="special">&amp;)*</span><span class="identifier">h</span><span class="special">&lt;&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span><br><span class="identifier">&nbsp; &nbsp; store</span><span class="special">.</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">h</span><span class="special">);</span><br><span class="special">&nbsp; }</span><br><br><span class="keyword">&nbsp; const</span> <span class="identifier">Entry</span><span class="special">&amp;</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><br><span class="special">&nbsp; {</span><br><span class="keyword">&nbsp; &nbsp; return</span> <span class="special">*</span><span class="identifier">h</span><span class="special">;</span><br><span class="special">&nbsp; }</span><br><span class="special">};</span> </pre>

+
 </blockquote>

+
 <p>
 The code deserves some commentaries:</p>

+
 <p>这段代码值得一些注释:
 </p>

+
 <ul>

+
   <li> Note that the factory is parameterized by <code>Entry</code>
 and <code>Key</code>, as these types are provided
 internally by Boost.Flyweight when the factory is instantiated as part
@@ -236,8 +302,10 @@
to accept some comparison predicate rather than the default <code>std::less&lt;Key&gt;</code>, or to specify the allocator used by the internal <code>std::set</code>.</li>

+
 </ul>

+
<div style="margin-left: 40px;">注意工厂是通过 <big><code>Entry</code></big>和<big><code>Key</code></big>来
 参数化的,作为<big><code>flyweight</code></big>机制的一部分,当
 工厂被实例化时这些参数由Boost.Flyweight内部
@@ -245,8 +313,10 @@
 它接受非默认的比较谓词<big><code>std::less&lt;Key&gt;</code></big>,
 或者指定内部<big><code>std::set</code></big>用的分配器。</div>

+
 <ul>

+
   <li> The fact that <code>Entry</code> is
 convertible to <code>const Key&amp;</code> (which is
 about the only property known about <code>Entry</code>) is
@@ -254,26 +324,33 @@
 as the comparison predicate for the <code>std::set</code>
 of <code>Entry</code>s used as the internal repository.</li>

+
 </ul>

+
 <div style="margin-left: 40px;">利用<big><code>Entry</code></big>可
 以转换到<big><code>const Key&amp;</code></big>的事
 实(这大概是<code></code>唯一所
知的<code>Entry</code>属性),我们指明 <big><code>std::less&lt;Key&gt;</code></big>作
 为存储<big><code>Entry</code>s</big>的内部存储
-桶——<big><code>std::set</code></big>的
+桶&mdash;&mdash;<big><code>std::set</code></big>的
 比较谓词。</div>

+
 <ul>

+
   <li> As our public <code>handle_type</code> we are
 simply using an iterator to the internal <code>std::set</code>.</li>

+
 </ul>

+
<div style="margin-left: 40px;">我们简单的使用一个指向内部 <big><code>std::set</code></big>的
 迭代器作为我们公开的<code><big>handle_type</big></code>。</div>

+
 <p>
In order to plug a custom factory into the specification of a <code>flyweight</code>
 type, we need an associated construct called the <i>factory
@@ -283,6 +360,7 @@
 and <code>Key</code> and returning the corresponding
 factory class:</p>

+
 <p>为了在一个专门化的<big><code>flyweight</code></big>类
 型里使用一个定制的工厂,我们需要一个相关
 的概念叫做<span style="font-style: italic;">工厂描述符</span>。一
@@ -291,11 +369,15 @@
 且返回相关的工厂类:
 </p>

+
 <blockquote>
- <pre><span class="comment">// Factory specifier (metafunction class version)</span><br><br><span class="keyword">struct</span> <span class="identifier">custom_factory_specifier</span><br><span class="special">{</span><br><span class="keyword">&nbsp; template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Entry</span><span class="special">,</span><span class="identifier">Key</span><span class="special">&gt;</span><br><span class="keyword">&nbsp; struct</span> <span class="identifier">apply</span><br><span class="special">&nbsp; {</span><br><span class="keyword">&nbsp; &nbsp; typedef</span> <span class="identifier">custom_factory_class</span><span class="special">&lt;</span><span class="identifier">Entry</span><span class="special">,</span><span class="identifier">Key</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span><br><span class="special">&nbsp; }</span> <br><span class="special">};</span><br><br><span class="comment">// Factory specifier (placeholder version)</span><br><br><span class="keyword">typedef</span> <span class="identifier">custom_factory_class</span><span class="special">&lt;</span><br><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><br><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">_2</span><br><span class="special">&gt;</span> <span class="identifier">custom_factory_specifier</span><span class="special">;</span> </pre>
+
+ <pre><span class="comment">// Factory specifier (metafunction class version)</span><br><br><span class="keyword">struct</span> <span class="identifier">custom_factory_specifier</span><br><span class="special">{</span><br><span class="keyword">&nbsp; template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Entry</span><span class="special">,</span><span class="identifier">Key</span><span class="special">&gt;</span><br><span class="keyword">&nbsp; struct</span> <span class="identifier">apply</span><br><span class="special">&nbsp; {</span><br><span class="keyword">&nbsp; &nbsp; typedef</span> <span class="identifier">custom_factory_class</span><span class="special">&lt;</span><span class="identifier">Entry</span><span class="special">,</span><span class="identifier">Key</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span><br><span class="special">&nbsp; }</span> <br><span class="special">};</span><br><br><span class="comment">// Factory specifier (placeholder version)</span><br><br><span class="keyword">typedef</span> <span class="identifier">custom_factory_class</span><span class="special">&lt;</span><br><span class="identifier">&nbsp; boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">_1</span><span class="special">,</span><br><span class="identifier">&nbsp; boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">_2</span><br><span class="special">&gt;</span> <span class="identifier">custom_factory_specifier</span><span class="special">;</span> </pre>
+

 </blockquote>

+
 <p>
 There is one last detail: in order to implement <code>flyweight</code>
 <a href="configuration.html#free_order_template">free-order
@@ -306,83 +388,109 @@
 mechanisms
 to do this tagging:</p>

+
<p>还有最后一个细节:为了实现<big><code>flyweight</code></big>的<a href="configuration.html#free_order_template">自由顺序模板参数</a><a href="configuration.html#free_order_template">接口</a>, 必须显式地标记一个工厂描述符,这样它才能同其它类型的描述符区分开。 Boost.Flyweight提供3种标记的办法:<a href="configuration.html#free_order_template"><code></code></a>
 </p>

+
 <ol>

+
<li>Have the specifier derive from the dummy type <code>factory_marker</code>.
 Note that this mechanism cannot be used with placeholder expressions.
+
     <p>让这个描述符从一个空类型<big><code>factory_marker</code></big>派
 生而来。注意这
 种机制不能用于占位符表达式。</p>

+
+
     <blockquote>
- <pre><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">flyweight</span><span class="special">/</span><span class="identifier">factory_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span><br><br><span class="keyword">struct</span> <span class="identifier">custom_factory_specifier</span><span class="special">:</span> <span class="identifier"><b>factory_marker</b></span><br><span class="special">{</span><br><span class="keyword">&nbsp; template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Entry</span><span class="special">,</span><span class="identifier">Key</span><span class="special">&gt;</span><br><span class="keyword">&nbsp; struct</span> <span class="identifier">apply</span><br><span class="special">&nbsp; {</span><br><span class="keyword">&nbsp; &nbsp; typedef</span> <span class="identifier">custom_factory_class</span><span class="special">&lt;</span><span class="identifier">Entry</span><span class="special">,</span><span class="identifier">Key</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span><br><span class="special">&nbsp; }</span><br><span class="special">};</span>
-      </pre>
+
+ <pre><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">flyweight</span><span class="special">/</span><span class="identifier">factory_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span><br><br><span class="keyword">struct</span> <span class="identifier">custom_factory_specifier</span><span class="special">:</span> <span class="identifier"><b>factory_marker</b></span><br><span class="special">{</span><br><span class="keyword">&nbsp; template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Entry</span><span class="special">,</span><span class="identifier">Key</span><span class="special">&gt;</span><br><span class="keyword">&nbsp; struct</span> <span class="identifier">apply</span><br><span class="special">&nbsp; {</span><br><span class="keyword">&nbsp; &nbsp; typedef</span> <span class="identifier">custom_factory_class</span><span class="special">&lt;</span><span class="identifier">Entry</span><span class="special">,</span><span class="identifier">Key</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span><br><span class="special">&nbsp; }</span><br><span class="special">};</span> </pre>
+

     </blockquote>

+
   </li>

+
<li>Specialize a special class template called <a href="../reference/factories.html#is_factory"><code>is_factory</code></a>:
+
<p>特化一个叫做<big><a href="../reference/factories.html#is_factory"><code>is_factory</code></a></big>的
 特殊类型。</p>

+
+
     <blockquote>
- <pre><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">flyweight</span><span class="special">/</span><span class="identifier">factory_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span><br><br><span class="keyword">struct</span> <span class="identifier">custom_factory_specifier</span><span class="special">{};</span><br><br><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">struct</span> <span class="identifier">is_factory</span><span class="special">&lt;</span><span class="identifier">custom_factory_specifier</span><span class="special">&gt;:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span><br><br><span class="special">}</span><br><span class="special">}</span>
-      </pre>
+
+ <pre><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">flyweight</span><span class="special">/</span><span class="identifier">factory_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span><br><br><span class="keyword">struct</span> <span class="identifier">custom_factory_specifier</span><span class="special">{};</span><br><br><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">struct</span> <span class="identifier">is_factory</span><span class="special">&lt;</span><span class="identifier">custom_factory_specifier</span><span class="special">&gt;:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span><br><br><span class="special">}</span><br><span class="special">}</span> </pre>
+

     </blockquote>

+
   </li>

+
   <li>The third mechanism, which is the least intrusive, consists
in wrapping the specifier inside the <a href="../reference/factories.html#factory_construct"><code>factory</code></a>
 construct:
- <p>第三种办法,这是对boost名字空间入侵性最小的办法,是把描述符包到 <big><a href="../reference/factories.html#factory_construct"><code>factory</code></a></big>结
-构中:</p>
+
+ <p>第三种办法,这是对boost名字空间入侵性最小的办法,是把描述符包到 <big><a href="../reference/factories.html#factory_construct"><code>factory</code></a></big>的 构造中:</p>
+

+
     <blockquote>
- <pre><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">flyweight</span><span class="special">/</span><span class="identifier">factory_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span><br><br><span class="keyword">typedef</span> <span class="identifier">flyweight</span><span class="special">&lt;</span><br><span class="identifier"> std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span><br><span class="identifier"><b> factory</b></span><span class="special">&lt;</span><span class="identifier">custom_factory_specifier</span><span class="special">&gt;</span><br><span class="special">&gt;</span> <span class="identifier">flyweight_string</span><span class="special">;</span>
-      </pre>
+
+ <pre><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">flyweight</span><span class="special">/</span><span class="identifier">factory_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span><br><br><span class="keyword">typedef</span> <span class="identifier">flyweight</span><span class="special">&lt;</span><br><span class="identifier"> std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span><br><span class="identifier"><b> factory</b></span><span class="special">&lt;</span><span class="identifier">custom_factory_specifier</span><span class="special">&gt;</span><br><span class="special">&gt;</span> <span class="identifier">flyweight_string</span><span class="special">;</span> </pre>
+

     </blockquote>

+
   </li>

+
 </ol>

+
 <p>
 <a href="../examples.html#example7">Example 7</a> in
 the examples section develops
 in full the <code>verbose_factory_class</code> case
 sketched above.</p>

+
 <p>示例章节的<a href="../examples.html#example7">例7</a>完
 整的实现了上面概述的<code>verbose_factory_class</code>例子。
 </p>

-<h2><a name="holders">Custom holders &nbsp;定制
-holders</a></h2>
+
+<h2><a name="holders">Custom holders &nbsp;定制holders</a></h2>
+

 <p>
 A holder is a class with a static member function <code>get()</code>
 giving
 access to a unique instance of a given type <code>C</code>:</p>

-<p><big>holder</big>是这样一个类,它的静态成员函数 <big><code>get()</code></big>提
-供了到给定类型<big><code>C</code></big>的
+
+<p><big>holder</big>是这样一个类,它的静态成员函数 <big><code>get()</code></big>提供到给定类型<big><code>C</code></big>的
 唯一实例的访问:
 </p>

+
 <blockquote>
- <pre><span class="comment">// example of a possible holder class template</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">C</span><span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">custom_holder_class</span><br><span class="special">{</span><br><span class="keyword">public</span><span class="special">:</span><br><span class="keyword">&nbsp; static</span> <span class="identifier">C</span><span class="special">&amp;</span> <span class="identifier">get</span><span class="special">();</span><br><span class="special">};</span>
-  </pre>
+
+ <pre><span class="comment">// example of a possible holder class template</span><br><br><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">C</span><span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">custom_holder_class</span><br><span class="special">{</span><br><span class="keyword">public</span><span class="special">:</span><br><span class="keyword">&nbsp; static</span> <span class="identifier">C</span><span class="special">&amp;</span> <span class="identifier">get</span><span class="special">();</span><br><span class="special">};</span> </pre>
+

 </blockquote>

+
 <p>
 <code>flyweight</code> internally uses a holder to create
 its associated
@@ -392,6 +500,7 @@
 upon which
 the associated holder class operates:</p>

+
 <p><big><code>flyweight</code></big>在内部使用一
 个holder来创建与之相关的工厂和其它一些全
局数据。一个holder描述符是一个<a href="lambda_expressions.html"><code>Lambda&nbsp;</code>表
@@ -399,12 +508,15 @@
 为参数。
 </p>

+
 <blockquote>
- <pre><span class="comment">// Holder specifier (metafunction class version)</span><br><br><span class="keyword">struct</span> <span class="identifier">custom_holder_specifier</span><br><span class="special">{</span><br><span class="keyword">&nbsp; template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">C</span><span class="special">&gt;</span><br><span class="keyword">&nbsp; struct</span> <span class="identifier">apply</span><br><span class="special">&nbsp; {</span><br><span class="keyword">&nbsp; &nbsp; typedef</span> <span class="identifier">custom_holder_class</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span><br><span class="special">&nbsp; }</span> <br><span class="special">};</span><br><br><span class="comment">// Holder specifier (placeholder version)</span><br><br><span class="keyword">typedef</span> <span class="identifier">custom_holder_class</span><span class="special">&lt;</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">&gt;</span> <span class="identifier">custom_factory_specifier</span><span class="special">;</span>
-  </pre>
+
+ <pre><span class="comment">// Holder specifier (metafunction class version)</span><br><br><span class="keyword">struct</span> <span class="identifier">custom_holder_specifier</span><br><span class="special">{</span><br><span class="keyword">&nbsp; template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">C</span><span class="special">&gt;</span><br><span class="keyword">&nbsp; struct</span> <span class="identifier">apply</span><br><span class="special">&nbsp; {</span><br><span class="keyword">&nbsp; &nbsp; typedef</span> <span class="identifier">custom_holder_class</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span><br><span class="special">&nbsp; }</span> <br><span class="special">};</span><br><br><span class="comment">// Holder specifier (placeholder version)</span><br><br><span class="keyword">typedef</span> <span class="identifier">custom_holder_class</span><span class="special">&lt;</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">&gt;</span> <span class="identifier">custom_factory_specifier</span><span class="special">;</span> </pre>
+

 </blockquote>

+
 <p>
 As is the case with <a href="#factories">factory
 specifiers</a>, holder
@@ -413,46 +525,59 @@
 available mechanisms
 to do so:</p>

+
<p>如同<a href="#factories">工厂描述符</a>,为了提供给 <big><code>flyweight</code></big>的
 时候能被正确识别,holder描述符必须
 被标记,有3种办法可以做到这一点:
 </p>

+
 <blockquote>
- <pre><span class="comment">// Alternatives for tagging a holder specifier</span><br><br><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">flyweight</span><span class="special">/</span><span class="identifier">holder_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span><br><br><span class="comment">// 1: Have the specifier derive from holder_marker</span><br><br><span class="keyword">struct</span> <span class="identifier">custom_holder_specifier</span><span class="special">:</span> <span class="identifier"><b>holder_marker</b></span><br><span class="special">{</span><br><span class="special">&nbsp; ...</span><br><span class="special">};</span><br><br><span class="comment">// 2: Specialize the is_holder class template</span><br><br><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">struct</span> <span class="identifier">is_holder</span><span class="special">&lt;</span><span class="identifier">custom_holder_specifier</span><span class="special">&gt;:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span><br><span class="special"><br>}}</span><br><br><span class="comment">// 3: use the holder&lt;&gt; wrapper when passing the specifier<br>// to flyweight</span><br><br><span class="keyword">typedef</span> <span class="identifier">flyweight</span><span class="special">&lt;</span><br><span class="identifier">&nbsp; std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span><br><span class="identifier"><b>&nbsp; holder</b></span><span class="special">&lt;</span><span class="identifier">custom_holder_specifier</span><span class="special">&gt;</span><br><span class="special">&gt;</span> <span class="identifier">flyweight_string</span><span class="special">;</span>
-  </pre>
+
+ <pre><span class="comment">// Alternatives for tagging a holder specifier</span><br><br><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">flyweight</span><span class="special">/</span><span class="identifier">holder_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span><br><br><span class="comment">// 1: Have the specifier derive from holder_marker</span><br><br><span class="keyword">struct</span> <span class="identifier">custom_holder_specifier</span><span class="special">:</span> <span class="identifier"><b>holder_marker</b></span><br><span class="special">{</span><br><span class="special">&nbsp; ...</span><br><span class="special">};</span><br><br><span class="comment">// 2: Specialize the is_holder class template</span><br><br><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">struct</span> <span class="identifier">is_holder</span><span class="special">&lt;</span><span class="identifier">custom_holder_specifier</span><span class="special">&gt;:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span><br><span class="special"><br>}}</span><br><br><span class="comment">// 3: use the holder&lt;&gt; wrapper when passing the specifier<br>// to flyweight</span><br><br><span class="keyword">typedef</span> <span class="identifier">flyweight</span><span class="special">&lt;</span><br><span class="identifier">&nbsp; std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span><br><span class="identifier"><b>&nbsp; holder</b></span><span class="special">&lt;</span><span class="identifier">custom_holder_specifier</span><span class="special">&gt;</span><br><span class="special">&gt;</span> <span class="identifier">flyweight_string</span><span class="special">;</span> </pre>
+

 </blockquote>

+
 <h2><a name="locking">Custom locking policies
 &nbsp;定制锁定策略</a></h2>

+
 <p>
 A custom locking policy presents the following simple interface:</p>

+
 <p>一个客户化的锁定策略提供如下简单的接口:
 </p>

+
 <blockquote>
- <pre><span class="comment">// example of a custom policy</span><br><br><span class="keyword">class</span> <span class="identifier">custom_locking</span><br><span class="special">{</span><br><span class="keyword">&nbsp; typedef</span> <span class="special">...</span> <span class="identifier">mutex_type</span><span class="special">;</span><br><span class="keyword">&nbsp; typedef</span> <span class="special">...</span> <span class="identifier">lock_type</span><span class="special">;</span><br><span class="special">};</span>
-  </pre>
+
+ <pre><span class="comment">// example of a custom policy</span><br><br><span class="keyword">class</span> <span class="identifier">custom_locking</span><br><span class="special">{</span><br><span class="keyword">&nbsp; typedef</span> <span class="special">...</span> <span class="identifier">mutex_type</span><span class="special">;</span><br><span class="keyword">&nbsp; typedef</span> <span class="special">...</span> <span class="identifier">lock_type</span><span class="special">;</span><br><span class="special">};</span> </pre>
+

 </blockquote>

+
 <p>
 where <code>lock_type</code> is used to acquire/release
 mutexes according to
 the <i>scoped lock</i> idiom:</p>

+
<p>在这里<big><code>lock_type</code></big>根据<span style="font-style: italic;">范围锁</span>惯用法来分配/释放互斥体:
 </p>

+
 <blockquote>
- <pre><span class="identifier">mutex_type</span> <span class="identifier">m</span><span class="special">;</span><br><span class="special">...</span><br><span class="special">{</span><br><span class="identifier">&nbsp; lock_type</span> <span class="identifier">lk</span><span class="special">(</span><span class="identifier">m</span><span class="special">);</span> <span class="comment">// acquire the mutex<br>&nbsp; // zone of mutual exclusion, no other thread can acquire the mutex</span><br><span class="special">&nbsp; ...</span><br><span class="special">}</span> <span class="comment">// m released at lk destruction</span>
-  </pre>
+
+ <pre><span class="identifier">mutex_type</span> <span class="identifier">m</span><span class="special">;</span><br><span class="special">...</span><br><span class="special">{</span><br><span class="identifier">&nbsp; lock_type</span> <span class="identifier">lk</span><span class="special">(</span><span class="identifier">m</span><span class="special">);</span> <span class="comment">// acquire the mutex<br>&nbsp; // zone of mutual exclusion, no other thread can acquire the mutex</span><br><span class="special">&nbsp; ...</span><br><span class="special">}</span> <span class="comment">// m released at lk destruction</span> </pre>
+

 </blockquote>

+
 <p>
 Formal definitions for the concepts
 <a href="../reference/locking.html#preliminary"><code>Mutex</code></a>
@@ -464,29 +589,36 @@
 <code>flyweight</code>, the class must be appropriately
 tagged:</p>

+
<p>参考部分有<a href="../reference/locking.html#preliminary"><code></code>互 斥体<code></code></a>和<a href="../reference/locking.html#preliminary"><code></code>范 围锁<code></code></a>的正式定义。为了将锁定策略作为 <big><code>flyweight</code></big>的
 模板参数传递,这个类必须被适当的标记:
 </p>

+
 <blockquote>
- <pre><span class="comment">// Alternatives for tagging a locking policy</span><br><br><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">flyweight</span><span class="special">/</span><span class="identifier">locking_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span><br><br><span class="comment">// 1: Have the policy derive from locking_marker</span><br><br><span class="keyword">struct</span> <span class="identifier">custom_locking</span><span class="special">:</span> <span class="identifier">locking_marker</span><br><span class="special">{</span><br><span class="special">&nbsp; ...</span><br><span class="special">};</span><br><br><span class="comment">// 2: Specialize the is_locking class template</span><br><br><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">struct</span> <span class="identifier">is_locking</span><span class="special">&lt;</span><span class="identifier">custom_locking</span><span class="special">&gt;:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span><br><span class="special"><br>}}</span><br><span class="comment"><br>// 3: use the locking&lt;&gt; wrapper when passing the policy<br>// to flyweight</span><br><br><span class="keyword">typedef</span> <span class="identifier">flyweight</span><span class="special">&lt;</span><br><span class="identifier">&nbsp; std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span><br><span class="identifier">&nbsp; locking</span><span class="special">&lt;</span><span class="identifier">custom_locking</span><span class="special">&gt;</span><br><span class="special">&gt;</span> <span class="identifier">flyweight_string</span><span class="special">;</span>
-  </pre>
+
+ <pre><span class="comment">// Alternatives for tagging a locking policy</span><br><br><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">flyweight</span><span class="special">/</span><span class="identifier">locking_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span><br><br><span class="comment">// 1: Have the policy derive from locking_marker</span><br><br><span class="keyword">struct</span> <span class="identifier">custom_locking</span><span class="special">:</span> <span class="identifier">locking_marker</span><br><span class="special">{</span><br><span class="special">&nbsp; ...</span><br><span class="special">};</span><br><br><span class="comment">// 2: Specialize the is_locking class template</span><br><br><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">struct</span> <span class="identifier">is_locking</span><span class="special">&lt;</span><span class="identifier">custom_locking</span><span class="special">&gt;:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span><br><span class="special"><br>}}</span><br><span class="comment"><br>// 3: use the locking&lt;&gt; wrapper when passing the policy<br>// to flyweight</span><br><br><span class="keyword">typedef</span> <span class="identifier">flyweight</span><span class="special">&lt;</span><br><span class="identifier">&nbsp; std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span><br><span class="identifier">&nbsp; locking</span><span class="special">&lt;</span><span class="identifier">custom_locking</span><span class="special">&gt;</span><br><span class="special">&gt;</span> <span class="identifier">flyweight_string</span><span class="special">;</span> </pre>
+

 </blockquote>

+
 <p>
 Note that a locking policy is its own specifier, i.e. there is no
 additional class to be passed as a proxy for the real component as is
 the case with factories and holders.</p>

+
<p>注意一个锁定策略是它自己的描述符,就是说,这里不需要像工厂和holders那样 传递一个作为真实组件代理的额外的类型。
 </p>

+
 <h2><a name="tracking">Custom tracking policies
 &nbsp;定制跟踪策略</a></h2>

+
 <p>
 Tracking policies contribute some type information to the process of
 definition of the internal flyweight factory, and are given access
@@ -495,40 +627,53 @@
 as a class with
 the following nested elements:</p>

+
<p>跟踪策略在定义内部flyweight工厂的过程中加入了一些类型信息,它被授权访问 工厂以实现跟踪代码。一个跟踪策略<big><code>Tracking</code></big>是
 一个定义了以下内嵌元素的类:
 </p>

+
 <ul>

+
   <li>A type <code>Tracking::entry_type</code>.</li>

+
 </ul>

+
<div style="margin-left: 40px;">一个 <big><code>Tracking::entry_type</code></big>类
 型</div>

+
 <ul>

+
   <li>A type <code>Tracking::handle_type</code>.</li>

+
 </ul>

+
<div style="margin-left: 40px;">一个 <big><code>Tracking::handle_type</code></big>类
 型<br>
+
 <br>

+
 </div>

+
 Each of these elements build on the preceding one, in the sense that
 Boost.Flyweight internal machinery funnels the results produced by an
 element into the following:<br>

-<br>

-内部机制
+<br>
+每个元素都建立在前一个的基础上,Boost.Flyweight的内部机制按以下的方式传递元 素生成的类型:
 <ul>

+
<li><code>Tracking::entry_type</code> is a <a href="lambda_expressions.html"><code>Lambda Expression</code></a>
 accepting two different types named <code>Value</code> and
     <code>Key</code> such that <code>Value</code>
@@ -543,8 +688,10 @@
 is required, the tracking policy can simply return <code>Value</code>
 as its <code>Tracking::entry_type</code> type.</li>

+
 </ul>

+
<div style="margin-left: 40px;"><big><code>Tracking::entry_type</code></big>是 一个<a href="lambda_expressions.html"><code><big>Lambda</big>&nbsp;</code>表
 达式</a>,它接受2个名为<code>Value</code>和<code>Key</code>的不同类型,
@@ -556,8 +703,10 @@
需要额外的信息,跟踪策略可以简单的返回<big><code>Value</code></big>作为它的 <big><code>Tracking::entry_type</code></big>类
 型。</div>

+
 <ul>

+
   <li> The binary <a href="lambda_expressions.html"><code>Lambda
 Expression</code></a> <code>Tracking::handle_type</code>
is invoked with types <code>InternalHandle</code> and <code>TrackingHandler</code>
@@ -567,16 +716,21 @@
 to offer functionality supporting the implementation of the tracking
 code.</li>

+
 </ul>

+
<div style="margin-left: 40px;">二元<a href="lambda_expressions.html"><code><big>Lambda</big>&nbsp;</code>表 达式</a><big><code>Tracking::handle_type</code></big>通过类型 <big><code>InternalHandle</code></big>和 <big><code>TrackingHandler</code></big>调 用产生一个<big><code>Handle</code></big>类型,该类型被用作flyweight工厂的 handle类型。作为模板参数传 递给<big><code>Tracking::handle_type</code></big>的<a href="../reference/tracking.html#preliminary"><code>TrackingHandler</code></a>用 来实现跟踪代码。<br>
+
 <br>

+
 </div>

+
 So, in order to define the factory of some instantiation
<code>fw_t</code> of <code>flyweight</code>, <code>Tracking::entry_type</code>
 is invoked with an internal type <code>Value</code>
@@ -601,8 +755,10 @@
 stage will this
 type be complete.<br>

+
 <br>

+
于是,为了定义某个<big><code>flyweight</code></big>实例 <big><code>fw_t</code></big>的工厂<code>,</code><code></code>用 一个可以隐式转换到<big><code>const fw_t::key_type&amp;</code></big>的 <code></code>内 部类型<big><code>Value</code></big>来调用 <big><code>Tracking::entry_type</code></big>,得到工厂的entry类型,这个类型 可以同时转换成<big><code>const
@@ -614,54 +770,71 @@
 <p>In order for a tracking policy to be passed to <code>flyweight</code>,
 it must be tagged much in the same way as the rest of specifiers.</p>

+
<p>为了让一个跟踪策略可以传递给<big><code>flyweight</code></big>,它必须像 其它标识符一样被标
 记。
 </p>

+
 <blockquote>
- <pre><span class="comment">// Alternatives for tagging a tracking policy</span><br><br><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">flyweight</span><span class="special">/</span><span class="identifier">tracking_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span><br><br><span class="comment">// 1: Have the policy derive from tracking_marker</span><br><br><span class="keyword">struct</span> <span class="identifier">custom_tracking</span><span class="special">:</span> <span class="identifier"><b>tracking_marker</b></span><br><span class="special">{</span><br><span class="special">&nbsp; ...</span><br><span class="special">};</span><br><br><span class="comment">// 2: Specialize the is_tracking class template</span><br><br><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">struct</span> <span class="identifier">is_tracking</span><span class="special">&lt;</span><span class="identifier">custom_tracking</span><span class="special">&gt;:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span><br><span class="special"><br>}}</span><br><br><span class="comment">// 3: use the tracking&lt;&gt; wrapper when passing the policy<br>// to flyweight</span><br><br><span class="keyword">typedef</span> <span class="identifier">flyweight</span><span class="special">&lt;</span><br><span class="identifier">&nbsp; std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span><br><span class="identifier"><b>&nbsp; tracking</b></span><span class="special">&lt;</span><span class="identifier">custom_tracking</span><span class="special">&gt;</span><br><span class="special">&gt;</span> <span class="identifier">flyweight_string</span><span class="special">;</span>
-  </pre>
+
+ <pre><span class="comment">// Alternatives for tagging a tracking policy</span><br><br><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">flyweight</span><span class="special">/</span><span class="identifier">tracking_tag</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span><br><br><span class="comment">// 1: Have the policy derive from tracking_marker</span><br><br><span class="keyword">struct</span> <span class="identifier">custom_tracking</span><span class="special">:</span> <span class="identifier"><b>tracking_marker</b></span><br><span class="special">{</span><br><span class="special">&nbsp; ...</span><br><span class="special">};</span><br><br><span class="comment">// 2: Specialize the is_tracking class template</span><br><br><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span><br><span class="keyword">namespace</span> <span class="identifier">flyweights</span><span class="special">{</span><br><br><span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">struct</span> <span class="identifier">is_tracking</span><span class="special">&lt;</span><span class="identifier">custom_tracking</span><span class="special">&gt;:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span><span class="special">{};</span><br><span class="special"><br>}}</span><br><br><span class="comment">// 3: use the tracking&lt;&gt; wrapper when passing the policy<br>// to flyweight</span><br><br><span class="keyword">typedef</span> <span class="identifier">flyweight</span><span class="special">&lt;</span><br><span class="identifier">&nbsp; std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span><br><span class="identifier"><b>&nbsp; tracking</b></span><span class="special">&lt;</span><span class="identifier">custom_tracking</span><span class="special">&gt;</span><br><span class="special">&gt;</span> <span class="identifier">flyweight_string</span><span class="special">;</span> </pre>
+

 </blockquote>

+
 <p>
 Tracking policies are their own specifiers, that is, they are provided
 directly
 as template arguments to the <code>flyweight</code> class
 template.</p>

+
<p>跟踪策略是它们自己的描述符,就是说,它们作为模板参数被直接提供给 <big><code>flyweight</code></big>类
 模板。
 </p>

+
 <hr>
<div class="prev_link"><a href="configuration.html"><img src="../prev.gif" alt="configuring Boost.Flyweight" border="0"><br>

+
 Configuring Boost.Flyweight
 </a></div>

+
<div class="up_link"><a href="index.html"><img src="../up.gif" alt="Boost.Flyweight tutorial" border="0"><br>

+
 Boost.Flyweight tutorial
 </a></div>

+
<div class="next_link"><a href="technical.html"><img src="../next.gif" alt="technical issues" border="0"><br>

+
 Technical issues
 </a></div>

+
 <br style="" clear="all">

+
 <br>

+
 <p>Revised December 2nd 2008</p>

-<p>© Copyright 2006-2008 Joaquín M
-López Muñoz.
+
+<p>&copy; Copyright 2006-2008 Joaqu&iacute;n M
+L&oacute;pez Mu&ntilde;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>
\ No newline at end of file
+
+</body>
+</html>

Modified: trunk/libs/flyweight/doc/tutorial/index.html
==============================================================================
--- trunk/libs/flyweight/doc/tutorial/index.html        (original)
+++ trunk/libs/flyweight/doc/tutorial/index.html        Fri Apr 10 04:07:11 2009
@@ -2,120 +2,84 @@
 <html>
 <head>

-
-
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
-
+  <title>Boost.Flyweight Documentation - Tutorial</title>


-
-  <title>Boost.Flyweight Documentation - Tutorial</title>
   <link rel="stylesheet" href="../style.css" type="text/css">

-
-
   <link rel="start" href="../index.html">

-
-
   <link rel="prev" href="../index.html">

-
-
   <link rel="up" href="../index.html">

-
-
   <link rel="next" href="basics.html">
+
 </head>


 <body>

-
<h1><img src="../../../../boost.png" alt="Boost logo" align="middle" height="86" width="277">Boost.Flyweight
 Tutorial</h1>

-
<div class="prev_link"><a href="../index.html"><img src="../prev.gif" alt="index" border="0"><br>

-
 Index
 </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="basics.html"><img src="../next.gif" alt="basics" border="0"><br>

-
 Basics
 </a></div>

-
 <br style="" clear="all">

-
 <hr>
 <h2>Contents &nbsp;目录</h2>

-
 <ul>

-
   <li><a href="#rationale">Rationale &nbsp;原理</a></li>

-
   <li><a href="#namespace">Namespace &nbsp;名字空间</a></li>

-
   <li><a href="#guide">Guide to the reader
 &nbsp;读者指南</a></li>

-
   <li><a href="basics.html">Basics &nbsp;基础</a></li>

-
   <li><a href="key_value.html">Key-value flyweights
 &nbsp;键-值 flyweights</a></li>

-
   <li><a href="configuration.html">Configuring
 Boost.Flyweight &nbsp;配置 Boost.Flyweight</a></li>

-
   <li><a href="extension.html">Extending
 Boost.Flyweight &nbsp;扩展 Boost.Flyweight</a></li>

-
   <li><a href="technical.html">Technical issues
 &nbsp;技术问题</a></li>

-
   <li><a href="lambda_expressions.html">Annex: MPL
 Lambda expressions &nbsp;附录:MPL Lambda 表达式</a></li>

-
 </ul>

-
 <h2><a name="rationale">Rationale &nbsp;原理</a></h2>

-
 <span style="float: left; margin-right: 20px; margin-bottom: 20px;">
<p align="center"><img src="flyweight_rep.png" alt="representation of a flyweight scenario" height="320" width="424"><br>

-
 <b>Fig. 1: Representation of a flyweight scenario.</b>
 </p>

-
 </span>
 <p>Consider an application that has to manage large quantities of
 objects of
@@ -128,13 +92,11 @@
 known
 as the <i>flyweight pattern</i> can be introduced.</p>

-
<p>考虑一个需要管理大量小对象的应用程序,这很可能需要比实际所能得到的更多的 内存。当这些对象是不可变的,换句话说,除非是重新附加到 一组新的状态数据,并且满足一些附加条件,它们的内部状态不会改变,此时可以引 入一种非常方便的称为 <span style="font-style: italic;">flyweight模式 </span>的优化技术。
 &nbsp;
 </p>

-
 <p>
 Let us say there are <i>N</i> different objects living at
 a given time
@@ -164,7 +126,6 @@
 easily
 handle documents ranging in the hundreds of thousands of characters.</p>

-
让我们假设某一时刻应用程序中存在 <i>N</i>个不同的对象,总共分为<i>M</i>个不 的值。如果<i>N</i>远大于<i>M</i>,也就是说,有很多相同的对象,就像这幅图里 所描述
 的
@@ -193,7 +154,6 @@
 convertible to
 <code>const T&amp;</code>.</p>

-
 <p style="color: rgb(0, 0, 0);">所能找到的文献中绝大多数对
这种设计模式的的描述都区分了flyweight的内在信息(提取到存储桶中的常量)和外 在、可变信息,这些信息随flyweight对象存储或者通过外
 部传递。从应用程序设计的角度
@@ -202,7 +162,6 @@
 T&amp;,用C++来实现这个惯用法非常的吸引人了。</code>
 </p>

-
 <p>
 The central repository of shared value objects is known as the <i>flyweight
 factory</i>. This component is able to locate and return a
@@ -224,22 +183,18 @@
 Other aspects of the implementation are also customizable and
 extendable.<br>

-
 <br>

-
共享对象的中央存储桶被称为<span style="font-style: italic;">flyweight工厂 </span>。 该模块能够定位并返回一个具有给定值的对象的引用,或者插入这个值如果之前没有 存储过该值的拷贝。Boost.Flyweight管理着 flyweights和它们的工厂的交互,这对程序员来说是透明的,因此偶尔使用这个库的 用户甚至根本不需要关心这个工厂的存在。 Boost.Flyweight默认使用一个基于哈希容器的工厂,这在绝大多数的场合是适用的。 当默认实现不适用的时候,可以定制这个工厂或者甚至用另外 一个不同的类型来替代它,要么是Boost.Flyweight提供的类型要么是用户的自定义类 型。实现的其它方面同样是可定制和可扩展的。</p>

-
 <h2 clear="all" style="">
 <a name="namespace">Namespace &nbsp;名字空间</a>
 </h2>

-
 <p>
All the public types of Boost.Flyweight reside in namespace <code>::boost::flyweights</code>.
 Additionaly, the main class template <code>flyweight</code>
@@ -250,24 +205,18 @@
 if the following
 directives were in effect:</p>

-
<p>Boost.Flyweight的所有公共类型在::boost::flyweights名字空间下。<span style="color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);">另外,通过 using指令将主类模板flyweight提升到了:: boost名字空间。</span></span>为表述简洁起见,本文档中的代码段在编写时都假定 这几个使用指令已经声明。
 </p>

-
 <blockquote>
-
<pre><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">;</span><br><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flyweights</span><span class="special">;</span> </pre>

-
 </blockquote>

-
 <h2><a name="guide">Guide to the reader
 &nbsp;读者指南</a></h2>

-
 <p>
 Although Boost.Flyweight features an extensive customization
 framework controlling many internal implementation aspects, the library
@@ -290,49 +239,30 @@
 this is covered on the <a href="extension.html">extension</a>
 section.</p>

-
-<p><span style="color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);">Boost.Flyweight以一个</span></span><span style="color: rgb(0, 0, 0);">可广泛定</span><span style="color: rgb(0, 0, 0);">制</span><span style="color: rgb(0, 0, 0);">的</span><span style="color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);">操控许多内部实现细节的框架为特 色,</span></span>但
-是这个库的设计指导原则是希望绝大多数的用户不需要关心或者
-根本不用意识到底层的复杂性。把Boost.Flyweight当作一个拿来即用的库来学习只需 要阅读<a href="basics.html">基
-础</a>章节和略读<a href="key_value.html">键-值flyweight</a>部
-分,flyweight<a href="configuration.html#tagging">类型标注</a>章
-节和<a href="technical.html">技术讨论</a>一节。<a href="configuration.html">配置</a>章节讲解如何调优这个库的各个内部组件。只有 非常 -高级的使用场合才需要实现用户提供的可插卸组件:这在<a href="extension.html">扩展</a>章
-节里有提到。
-</p>
-
+<p>Boost.Flyweight以一个可广泛定制的控许多内部实现细节的框架为特色,但是这 个库的设计指导原则是希望绝大多数的用户不需要关心或者根本不用意识到底层的复杂 性。把Boost.Flyweight当作一个拿来即用的库来学习只需要阅读<a href="basics.html">基础</a>章节和略读<a href="key_value.html">键-值 flyweight</a>部分,flyweight<a href="configuration.html#tagging">类型标注 </a>章节和<a href="technical.html">技术讨论</a>一节。<a href="configuration.html">配置</a>章节讲解如何调优这个库的各个内部组�

==============================================================================
Diff truncated at 200k characters

Other related posts:

  • » [boost-doc-zh commit] r240 - no log message - codesite-noreply