[boost-doc-zh] r327 committed - 转换至1.40.0,第10批,完成以下库:...

  • From: codesite-noreply@xxxxxxxxxx
  • To: boost-doc-zh-notify@xxxxxxxxxxxxx
  • Date: Sat, 12 Sep 2009 07:53:35 +0000

Revision: 327
Author: alai04
Date: Sat Sep 12 00:52:19 2009
Log: 转换至1.40.0,第10批,完成以下库:
optional
parameter
pointer container
pool
preprocessor
python
random
range
rational
regex
scope_exit
serialization
smart_ptr
spirit
statechart
swap
system
test
timer
tokenizer
tuple
type_traits
uBLAS
utility
value_initialized
wave
http://code.google.com/p/boost-doc-zh/source/detail?r=327

Added:
 /trunk/libs/timer/test
 /trunk/libs/timer/test/timer_test.cpp
Deleted:
 /trunk/libs/timer/timer_test.cpp
Modified:
 /trunk/libs/python/doc/tutorial/doc/html/index.html
 /trunk/libs/python/doc/tutorial/doc/html/python/embedding.html
 /trunk/libs/python/doc/tutorial/doc/html/python/exception.html
 /trunk/libs/python/doc/tutorial/doc/html/python/exposing.html
 /trunk/libs/python/doc/tutorial/doc/html/python/functions.html
 /trunk/libs/python/doc/tutorial/doc/html/python/hello.html
 /trunk/libs/python/doc/tutorial/doc/html/python/iterators.html
 /trunk/libs/python/doc/tutorial/doc/html/python/object.html
 /trunk/libs/python/doc/tutorial/doc/html/python/techniques.html
 /trunk/libs/python/doc/v2/object.html
 /trunk/libs/random/random-generators.html
 /trunk/libs/range/doc/mfc_atl.html
 /trunk/libs/regex/doc/html/boost_regex/background_information/history.html
 /trunk/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html
 /trunk/libs/regex/doc/html/boost_regex/format/perl_format.html
 /trunk/libs/regex/doc/html/boost_regex/ref/match_results.html
 /trunk/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html
 /trunk/libs/regex/doc/html/index.html
 /trunk/libs/serialization/doc/dataflow.html
 /trunk/libs/serialization/doc/release.html
 /trunk/libs/serialization/doc/smart_cast.html
 /trunk/libs/serialization/doc/state_saver.html
 /trunk/libs/serialization/doc/static_warning.html
 /trunk/libs/serialization/doc/strong_typedef.html
 /trunk/libs/spirit/classic/doc/debugging.html
 /trunk/libs/spirit/classic/doc/functional.html
 /trunk/libs/spirit/classic/example/intermediate/simple_xml/tag.hpp
 /trunk/libs/statechart/doc/acknowledgments.html
 /trunk/libs/statechart/doc/future_and_history.html
 /trunk/libs/statechart/doc/index.html
 /trunk/libs/timer/index.html
 /trunk/libs/tokenizer/tokenizerfunction.htm
 /trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html
/trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html
 /trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html
 /trunk/libs/type_traits/doc/html/index.html
 /trunk/libs/wave/doc/class_reference_tokentype.html

=======================================
--- /dev/null
+++ /trunk/libs/timer/test/timer_test.cpp       Sat Sep 12 00:52:19 2009
@@ -0,0 +1,89 @@
+// timer, job_timer, and progress_display sample program -------------------//
+
+//  Copyright Beman Dawes 1998.  Distributed under the Boost
+//  Software License, Version 1.0. (See accompanying file
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+//  See http://www.boost.org/libs/timer for documentation.
+
+//  Revision History
+//  12 Jan 01  Cut time to 1.0 secs to speed regression tests (Beman Dawes)
+//  25 Sep 99  added elapsed_min() and elapsed_max() reporting
+//  16 Jul 99  Second beta
+//   6 Jul 99  Initial boost version
+
+#include <boost/progress.hpp>
+#include <iostream>
+#include <climits>
+
+using boost::timer;
+using boost::progress_timer;
+using boost::progress_display;
+using std::cout;
+using std::endl;
+
+int main() {
+
+  timer t0;  // used only for elapsed_max() and elapsed_min()
+
+ cout << "timer::elapsed_min() reports " << t0.elapsed_min() << " seconds\n";
+  cout << "timer::elapsed_max() reports " << t0.elapsed_max()
+       << " seconds, which is " << t0.elapsed_max()/3600.0 << " hours\n";
+
+  cout << "\nverify progress_display(0) doesn't divide by zero" << endl;
+  progress_display zero( 0 );  // verify 0 doesn't divide by zero
+  ++zero;
+
+  long loops;
+  timer loop_timer;
+  const double time = 1.0;
+
+  cout << "\ndetermine " << time << " second iteration count" << endl;
+  for ( loops = 0; loops < LONG_MAX
+     && loop_timer.elapsed() < time; ++loops ) {}
+  cout << loops << " iterations"<< endl;
+
+  long i;
+  bool time_waster; // defeat [some] optimizers by storing result here
+
+  progress_timer pt;
+  timer t1;
+  timer t4;
+  timer t5;
+
+  cout << "\nburn about " << time << " seconds" << endl;
+  progress_display pd( loops );
+  for ( i = loops; i--; )
+    { time_waster = loop_timer.elapsed() < time; ++pd; }
+
+  timer t2( t1 );
+  timer t3;
+  t4 = t3;
+  t5.restart();
+
+  cout << "\nburn about " << time << " seconds again" << endl;
+  pd.restart( loops );
+  for ( i = loops; i--; )
+    { time_waster = loop_timer.elapsed() < time; ++pd; }
+
+ if ( time_waster ) cout << ' '; // using time_waster quiets compiler warnings + progress_display pd2( 50, cout, "\nLead string 1 ", "Lead string 2 ", "Lead string 3 " );
+  for ( ; pd2.count() < 50; ++pd2 ) {}
+
+  cout << "\nt1 elapsed: " << t1.elapsed() << '\n';
+  cout << "t2 elapsed: " << t2.elapsed() << '\n';
+  cout << "t3 elapsed: " << t3.elapsed() << '\n';
+  cout << "t4 elapsed: " << t4.elapsed() << '\n';
+  cout << "t5 elapsed: " << t5.elapsed() << '\n';
+  cout << "t1 and t2 should report the same times (very approximately "
+       << 2*time << " seconds).\n";
+  cout << "t3, t4 and t5 should report about the same times,\n";
+  cout << "and these should be about half the t1 and t2 times.\n";
+  cout << "The following elapsed time should be slightly greater than t1."
+       << endl;
+  return 0;
+  } // main
+
+
+
+
=======================================
--- /trunk/libs/timer/timer_test.cpp    Thu Sep  4 20:10:05 2008
+++ /dev/null
@@ -1,89 +0,0 @@
-// timer, job_timer, and progress_display sample program -------------------//
-
-//  Copyright Beman Dawes 1998.  Distributed under the Boost
-//  Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/timer for documentation.
-
-//  Revision History
-//  12 Jan 01  Cut time to 1.0 secs to speed regression tests (Beman Dawes)
-//  25 Sep 99  added elapsed_min() and elapsed_max() reporting
-//  16 Jul 99  Second beta
-//   6 Jul 99  Initial boost version
-
-#include <boost/progress.hpp>
-#include <iostream>
-#include <climits>
-
-using boost::timer;
-using boost::progress_timer;
-using boost::progress_display;
-using std::cout;
-using std::endl;
-
-int main() {
-
-  timer t0;  // used only for elapsed_max() and elapsed_min()
-
- cout << "timer::elapased_min() reports " << t0.elapsed_min() << " seconds\n";
-  cout << "timer::elapased_max() reports " << t0.elapsed_max()
-       << " seconds, which is " << t0.elapsed_max()/3600.0 << " hours\n";
-
-  cout << "\nverify progress_display(0) doesn't divide by zero" << endl;
-  progress_display zero( 0 );  // verify 0 doesn't divide by zero
-  ++zero;
-
-  long loops;
-  timer loop_timer;
-  const double time = 1.0;
-
-  cout << "\ndetermine " << time << " second iteration count" << endl;
-  for ( loops = 0; loops < LONG_MAX
-     && loop_timer.elapsed() < time; ++loops ) {}
-  cout << loops << " iterations"<< endl;
-
-  long i;
-  bool time_waster; // defeat [some] optimizers by storing result here
-
-  progress_timer pt;
-  timer t1;
-  timer t4;
-  timer t5;
-
-  cout << "\nburn about " << time << " seconds" << endl;
-  progress_display pd( loops );
-  for ( i = loops; i--; )
-    { time_waster = loop_timer.elapsed() < time; ++pd; }
-
-  timer t2( t1 );
-  timer t3;
-  t4 = t3;
-  t5.restart();
-
-  cout << "\nburn about " << time << " seconds again" << endl;
-  pd.restart( loops );
-  for ( i = loops; i--; )
-    { time_waster = loop_timer.elapsed() < time; ++pd; }
-
- if ( time_waster ) cout << ' '; // using time_waster quiets compiler warnings - progress_display pd2( 50, cout, "\nLead string 1 ", "Lead string 2 ", "Lead string 3 " );
-  for ( ; pd2.count() < 50; ++pd2 ) {}
-
-  cout << "\nt1 elapsed: " << t1.elapsed() << '\n';
-  cout << "t2 elapsed: " << t2.elapsed() << '\n';
-  cout << "t3 elapsed: " << t3.elapsed() << '\n';
-  cout << "t4 elapsed: " << t4.elapsed() << '\n';
-  cout << "t5 elapsed: " << t5.elapsed() << '\n';
-  cout << "t1 and t2 should report the same times (very approximately "
-       << 2*time << " seconds).\n";
-  cout << "t3, t4 and t5 should report about the same times,\n";
-  cout << "and these should be about half the t1 and t2 times.\n";
-  cout << "The following elapsed time should be slightly greater than t1."
-       << endl;
-  return 0;
-  } // main
-
-
-
-
=======================================
--- /trunk/libs/python/doc/tutorial/doc/html/index.html Mon Apr 13 21:23:05 2009 +++ /trunk/libs/python/doc/tutorial/doc/html/index.html Sat Sep 12 00:52:19 2009
@@ -1,21 +1,20 @@
-<html>
-<head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Chapter 1. python 1.0</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+
+<title>Chapter 1. python 1.0</title><link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
 <link rel="start" href="index.html" title="Chapter 1. python 1.0">
-<link rel="next" href="python/hello.html" title="Building Hello World">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td> +<link rel="next" href="python/hello.html" title="Building Hello World"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>
+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../../boost.png" height="86" width="277"></td>
 <td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> -<td align="center"><a href="http://www.boost.org/people/people.htm";>People</a></td>
-<td align="center"><a href="http://www.boost.org/more/faq.htm";>FAQ</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
 <td align="center"><a href="../../../../../../more/index.htm">More</a></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
<div class="spirit-nav"><a accesskey="n" href="python/hello.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a></div>
 <div class="chapter" lang="en">
@@ -32,7 +31,7 @@
 <div><div class="author"><h3>
 翻译:<a href="http://blog.csdn.net/jq0123";>金庆</a>
 </h3></div></div>
-<div><p class="copyright">Copyright &copy; 2002-2005 Joel
+<div><p class="copyright">Copyright © 2002-2005 Joel
       de Guzman, David Abrahams</p></div>
 <div><div class="legalnotice">
 <a name="id2625929"></a><p>
@@ -128,9 +127,9 @@
 </div>

 <div class="section" lang="en">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both;">
 <a name="python.quickstart"></a>QuickStart</h2>
-<h2 class="title" style="clear: both">快速入门</h2>
+<h2 class="title" style="clear: both;">快速入门</h2>
 </div></div></div>
 <p>
The Boost Python Library is a framework for interfacing Python and C++. It
@@ -173,8 +172,7 @@
     遵循C/C++传统,让我们从“hello, world”开始。一个C++函数:
     </p>

-<pre class="programlisting">
-<span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">greet</span><span class="special">()</span> +<pre class="programlisting"><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">greet</span><span class="special">()</span>
 <span class="special">{</span>
<span class="keyword">return</span> <span class="string">"hello, world"</span><span class="special">;</span>
 <span class="special">}</span>
@@ -187,8 +185,7 @@
     可以通过编写一个Boost.Python封装,导出到Python:
     </p>

-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">python</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> +<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">python</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

<span class="identifier">BOOST_PYTHON_MODULE</span><span class="special">(</span><span class="identifier">hello_ext</span><span class="special">)</span>
 <span class="special">{</span>
@@ -210,8 +207,7 @@

 <p>
     </p>
-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="keyword">import</span> <span class="identifier">hello_ext</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="keyword">import</span> <span class="identifier">hello_ext</span> <span class="special">&gt;&gt;&gt;</span> <span class="keyword">print</span> <span class="identifier">hello_ext</span><span class="special">.</span><span class="identifier">greet</span><span class="special">()</span> <span class="identifier">hello</span><span class="special">,</span> <span class="identifier">world</span>
 </pre>
@@ -238,17 +234,16 @@
 </div>
 </div>

-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr> -<td align="left"><p><small>Last revised: March 15, 2008 at 13:46:47 GMT</small></p></td> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr> +<td align="left"><p><small>Last revised: November 22, 2008 at 03:24:11 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr>
 <tr>
-<td align="left"><p><small>译文更新: 2008.5.29</small></p></td>
+<td align="left"><p><small>译文更新: 2008.11.22</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr>
-</table>
+</tbody></table>
 <hr>
<div class="spirit-nav"><a accesskey="n" href="python/hello.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a></div>

-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/python/doc/tutorial/doc/html/python/embedding.html Mon Apr 13 21:23:05 2009 +++ /trunk/libs/python/doc/tutorial/doc/html/python/embedding.html Sat Sep 12 00:52:19 2009
@@ -1,31 +1,30 @@
-<html>
-<head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Embedding</title>
-<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+
+<title>Embedding</title><link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
 <link rel="start" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="prev" href="object.html" title=" Object Interface">
-<link rel="next" href="iterators.html" title="Iterators">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center"><a href="../../../../../../../index.htm">Home</a></td>
+<link rel="next" href="iterators.html" title="Iterators"></head>
+<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>
+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> -<td align="center"><a href="../../../../../../../people/people.htm">People</a></td>
-<td align="center"><a href="../../../../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td> <td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="object.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="iterators.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both;">
 <a name="python.embedding"></a>Embedding</h2>
-<h2 class="title" style="clear: both">内嵌</h2>
+<h2 class="title" style="clear: both;">内嵌</h2>
 </div></div></div>

<div class="toc"><dl><dt><span class="section"><a href="embedding.html#python.using_the_interpreter">Using the interpreter</a></span></dt></dl></div>
@@ -133,21 +132,7 @@
        在Jamfile中,所有上述归结为:
     </p>

-<pre class="programlisting">projectroot c:\projects\embedded_program ; # location of the program
-
-# bring in the rules for python
-SEARCH on python.jam = $(BOOST_BUILD_PATH) ;
-include python.jam ;
-
-exe embedded_program # name of the executable
-  : #sources
-     embedded_program.cpp
-  : # requirements
- &lt;find-library&gt;boost_python &lt;library-path&gt;c:\boost\libs\python
-  $(PYTHON_PROPERTIES)
-    &lt;library-path&gt;$(PYTHON_LIB_PATH)
-    &lt;find-library&gt;$(PYTHON_EMBEDDED_LIBRARY) ;
-</pre>
+<pre class="programlisting">projectroot c:\projects\embedded_program ; # location of the program<br><br># bring in the rules for python<br>SEARCH on python.jam = $(BOOST_BUILD_PATH) ;<br>include python.jam ;<br><br>exe embedded_program # name of the executable<br> : #sources<br> embedded_program.cpp<br> : # requirements<br> &lt;find-library&gt;boost_python &lt;library-path&gt;c:\boost\libs\python<br> $(PYTHON_PROPERTIES)<br> &lt;library-path&gt;$(PYTHON_LIB_PATH)<br> &lt;find-library&gt;$(PYTHON_EMBEDDED_LIBRARY) ;<br></pre>
 <a name="embedding.getting_started"></a><h2>
 <a name="id471434"></a>
       Getting started
@@ -188,8 +173,8 @@
 </li>
 </ol></div>

-<div class="note"><table border="0" summary="Note">
-<tr>
+<div class="note"><table summary="Note" border="0">
+<tbody><tr>
<td rowspan="3" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/html/images/note.png"></td>
 <th align="left">Note</th>
 </tr>
@@ -205,7 +190,7 @@
         这可能会在Boost.Python未来的版本中修正。
         </b></span>
       </p></td></tr>
-</table></div>
+</tbody></table></div>
 <p>
       (Of course, there can be other C++ code between all of these steps.)
     </p>
@@ -239,10 +224,10 @@
 </div></div></div>
 <p>
As you probably already know, objects in Python are reference-counted. Naturally, - the <tt class="literal">PyObject</tt>s of the Python/C API are also reference-counted. + the <tt class="literal">PyObject</tt>s of the Python C API are also reference-counted. There is a difference however. While the reference-counting is fully automatic - in Python, the Python<span class="emphasis"><em>C API requires you to do it [@http:</em></span>/www.python.org/doc/current/api/refcounts.html - by hand]. This is messy and especially hard to get right in the presence + in Python, the Python C API requires you to do it <a href="http://www.python.org/doc/current/c-api/refcounting.html"; target="_top">by
+hand</a>. This is messy and especially hard to get right in the presence
of C++ exceptions. Fortunately Boost.Python provides the <a href="../../../../v2/handle.html" target="_top">handle</a> and <a href="../../../../v2/object.html" target="_top">object</a> class templates to
         automate the process.
@@ -250,13 +235,13 @@

 <p>
        正如您可能已经知道的,Python对象是引用计数的。
-       自然,Python/C API 中的
+       自然,Python C API 中的
        <tt class="literal">PyObject</tt>
        也是引用计数的。
        但是两者是有区别的。
        Python的引用计数是全自动的,
        而Python/C API则要求你
- <a href="http://www.python.org/doc/current/api/refcounts.html"; target="_top">手工</a> + <a href="http://www.python.org/doc/current/c-api/refcounting.html"; target="_top">手工</a>
        计数。
        这就很麻烦,特别是存在C++异常的情况下,很难正确处理。
        幸好Boost.Python提供了
@@ -279,8 +264,7 @@
        Boost.Python提供了3个相关的函数,用来从C++运行Python代码。
     </p>

-<pre class="programlisting">
-<span class="identifier">object</span> <span class="identifier">eval</span><span class="special">(</span><span class="identifier">str</span> <span class="identifier">expression</span><span class="special">,</span> <span class="identifier">object</span> <span class="identifier">globals</span> <span class="special">=</span> <span class="identifier">object</span><span class="special">(),</span> <span class="identifier">object</span> <span class="identifier">locals</span> <span class="special">=</span> <span class="identifier">object</span><span class="special">())</span> +<pre class="programlisting"><span class="identifier">object</span> <span class="identifier">eval</span><span class="special">(</span><span class="identifier">str</span> <span class="identifier">expression</span><span class="special">,</span> <span class="identifier">object</span> <span class="identifier">globals</span> <span class="special">=</span> <span class="identifier">object</span><span class="special">(),</span> <span class="identifier">object</span> <span class="identifier">locals</span> <span class="special">=</span> <span class="identifier">object</span><span class="special">())</span> <span class="identifier">object</span> <span class="identifier">exec</span><span class="special">(</span><span class="identifier">str</span> <span class="identifier">code</span><span class="special">,</span> <span class="identifier">object</span> <span class="identifier">globals</span> <span class="special">=</span> <span class="identifier">object</span><span class="special">(),</span> <span class="identifier">object</span> <span class="identifier">locals</span> <span class="special">=</span> <span class="identifier">object</span><span class="special">())</span> <span class="identifier">object</span> <span class="identifier">exec_file</span><span class="special">(</span><span class="identifier">str</span> <span class="identifier">filename</span><span class="special">,</span> <span class="identifier">object</span> <span class="identifier">globals</span> <span class="special">=</span> <span class="identifier">object</span><span class="special">(),</span> <span class="identifier">object</span> <span class="identifier">locals</span> <span class="special">=</span> <span class="identifier">object</span><span class="special">())</span>
 </pre>
@@ -321,8 +305,7 @@
         Boost.Python提供了一个导入模块的函数:
     </p>

-<pre class="programlisting">
-<span class="identifier">object</span> <span class="identifier">import</span><span class="special">(</span><span class="identifier">str</span> <span class="identifier">name</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">object</span> <span class="identifier">import</span><span class="special">(</span><span class="identifier">str</span> <span class="identifier">name</span><span class="special">)</span>
 </pre>
 <p>
import imports a python module (potentially loading it into the running process
@@ -344,8 +327,7 @@
        模块并在其名字空间运行一些Python代码:
     </p>

-<pre class="programlisting">
-<span class="identifier">object</span> <span class="identifier">main_module</span> <span class="special">=</span> <span class="identifier">import</span><span class="special">(</span><span class="string">"__main__"</span><span class="special">);</span> +<pre class="programlisting"><span class="identifier">object</span> <span class="identifier">main_module</span> <span class="special">=</span> <span class="identifier">import</span><span class="special">(</span><span class="string">"__main__"</span><span class="special">);</span> <span class="identifier">object</span> <span class="identifier">main_namespace</span> <span class="special">=</span> <span class="identifier">main_module</span><span class="special">.</span><span class="identifier">attr</span><span class="special">(</span><span class="string">"__dict__"</span><span class="special">);</span>

<span class="identifier">object</span> <span class="identifier">ignored</span> <span class="special">=</span> <span class="identifier">exec</span><span class="special">(</span><span class="string">"hello = file('hello.txt', 'w')\n"</span>
@@ -385,8 +367,7 @@
        以下的例子将进一步说明这一事实:
     </p>

-<pre class="programlisting">
-<span class="identifier">object</span> <span class="identifier">main_module</span> <span class="special">=</span> <span class="identifier">import</span><span class="special">(</span><span class="string">"__main__"</span><span class="special">);</span> +<pre class="programlisting"><span class="identifier">object</span> <span class="identifier">main_module</span> <span class="special">=</span> <span class="identifier">import</span><span class="special">(</span><span class="string">"__main__"</span><span class="special">);</span> <span class="identifier">object</span> <span class="identifier">main_namespace</span> <span class="special">=</span> <span class="identifier">main_module</span><span class="special">.</span><span class="identifier">attr</span><span class="special">(</span><span class="string">"__dict__"</span><span class="special">);</span> <span class="identifier">object</span> <span class="identifier">ignored</span> <span class="special">=</span> <span class="identifier">exec</span><span class="special">(</span><span class="string">"result = 5 ** 2"</span><span class="special">,</span> <span class="identifier">main_namespace</span><span class="special">);</span> <span class="keyword">int</span> <span class="identifier">five_squared</span> <span class="special">=</span> <span class="identifier">extract</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</span><span class="identifier">main_namespace</span><span class="special">[</span><span class="string">"result"</span><span class="special">]);</span>
@@ -408,8 +389,7 @@
        是使用eval,它直接返回结果:
     </p>

-<pre class="programlisting">
-<span class="identifier">object</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">eval</span><span class="special">(</span><span class="string">"5 ** 2"</span><span class="special">);</span> +<pre class="programlisting"><span class="identifier">object</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">eval</span><span class="special">(</span><span class="string">"5 ** 2"</span><span class="special">);</span> <span class="keyword">int</span> <span class="identifier">five_squared</span> <span class="special">=</span> <span class="identifier">extract</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</span><span class="identifier">result</span><span class="special">);</span>
 </pre>
 <a name="using_the_interpreter.exception_handling"></a><h2>
@@ -427,25 +407,20 @@
<a href="../../../../v2/errors.html#error_already_set-spec" target="_top">error_already_set</a>:
     </p>

-<pre class="programlisting">
-<span class="keyword">try</span>
+<pre class="programlisting"><span class="keyword">try</span>
 <span class="special">{</span>
<span class="identifier">object</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">eval</span><span class="special">(</span><span class="string">"5/0"</span><span class="special">);</span>
-    <span class="comment">// execution will never get here:
-</span> <span class="keyword">int</span> <span class="identifier">five_divided_by_zero</span> <span class="special">=</span> <span class="identifier">extract</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</span><span class="identifier">result</span><span class="special">);</span> + <span class="comment">// execution will never get here:<br></span> <span class="keyword">int</span> <span class="identifier">five_divided_by_zero</span> <span class="special">=</span> <span class="identifier">extract</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</span><span class="identifier">result</span><span class="special">);</span>
 <span class="special">}</span>
<span class="keyword">catch</span><span class="special">(</span><span class="identifier">error_already_set</span> <span class="keyword">const</span> <span class="special">&amp;)</span>
 <span class="special">{</span>
-    <span class="comment">// handle the exception in some way
-</span><span class="special">}</span>
+ <span class="comment">// handle the exception in some way<br></span><span class="special">}</span>
 </pre>
 <p>
The <tt class="literal">error_already_set</tt> exception class doesn't carry any information in itself. To find out more about the Python exception that occurred, you need to use the <a href="http://www.python.org/doc/api/exceptionHandling.html"; target="_top">exception - handling functions</a> of the Python<span class="emphasis"><em>C API in your catch-statement. - This can be as simple as calling [@http:</em></span>/www.python.org/doc/api/exceptionHandling.html#l2h-70 - PyErr_Print()] to print the exception's traceback to the console, or comparing + handling functions</a> of the Python C API in your catch-statement. This can be as simple as calling <a href="http://www.python.org/doc/api/exceptionHandling.html#l2h-70"; target="_top">PyErr_Print()</a> to print the exception's traceback to the console, or comparing the type of the exception with those of the <a href="http://www.python.org/doc/api/standardExceptions.html"; target="_top">standard
         exceptions</a>:
       </p>
@@ -463,17 +438,14 @@
        比较类型:
     </p>

-<pre class="programlisting">
-<span class="keyword">catch</span><span class="special">(</span><span class="identifier">error_already_set</span> <span class="keyword">const</span> <span class="special">&amp;)</span> +<pre class="programlisting"><span class="keyword">catch</span><span class="special">(</span><span class="identifier">error_already_set</span> <span class="keyword">const</span> <span class="special">&amp;)</span>
 <span class="special">{</span>
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">PyErr_ExceptionMatches</span><span class="special">(</span><span class="identifier">PyExc_ZeroDivisionError</span><span class="special">))</span>
     <span class="special">{</span>
-        <span class="comment">// handle ZeroDivisionError specially
-</span>    <span class="special">}</span>
+ <span class="comment">// handle ZeroDivisionError specially<br></span> <span class="special">}</span>
     <span class="keyword">else</span>
     <span class="special">{</span>
-        <span class="comment">// print all other errors to stderr
-</span> <span class="identifier">PyErr_Print</span><span class="special">();</span> + <span class="comment">// print all other errors to stderr<br></span> <span class="identifier">PyErr_Print</span><span class="special">();</span>
     <span class="special">}</span>
 <span class="special">}</span>
 </pre>
@@ -491,9 +463,9 @@

 </div>
 </div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &copy; 2002-2005 Joel
+<td align="right"><div class="copyright-footer">Copyright © 2002-2005 Joel
       de Guzman, David Abrahams<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">
@@ -503,11 +475,10 @@
       <p>译文更新:2008.5.28</p>
 </div></td>

-</tr></table>
+</tr></tbody></table>

 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="object.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="iterators.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/python/doc/tutorial/doc/html/python/exception.html Mon Apr 13 21:23:05 2009 +++ /trunk/libs/python/doc/tutorial/doc/html/python/exception.html Sat Sep 12 00:52:19 2009
@@ -1,31 +1,30 @@
-<html>
-<head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title> Exception Translation</title>
-<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+
+<title>Exception Translation</title><link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
 <link rel="start" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="prev" href="iterators.html" title="Iterators">
-<link rel="next" href="techniques.html" title=" General Techniques">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center"><a href="../../../../../../../index.htm">Home</a></td>
+<link rel="next" href="techniques.html" title=" General Techniques"></head>
+<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>
+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> -<td align="center"><a href="../../../../../../../people/people.htm">People</a></td>
-<td align="center"><a href="../../../../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td> <td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="iterators.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="techniques.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both;">
 <a name="python.exception"></a> Exception Translation</h2>
-<h2 class="title" style="clear: both">异常翻译</h2>
+<h2 class="title" style="clear: both;">异常翻译</h2>
 </div></div></div>
 <p>
All C++ exceptions must be caught at the boundary with Python code. This boundary
@@ -40,8 +39,7 @@
       它翻译选定的标准异常,然后给出:
     </p>

-<pre class="programlisting">
-<span class="keyword">raise</span> <span class="identifier">RuntimeError</span><span class="special">,</span> <span class="string">'unidentifiable C++ Exception'</span> +<pre class="programlisting"><span class="keyword">raise</span> <span class="identifier">RuntimeError</span><span class="special">,</span> <span class="string">'unidentifiable C++ Exception'</span>
 </pre>
 <p>
       Users may provide custom translation. Here's an example:
@@ -51,8 +49,7 @@
       用户可提供定制翻译。下面是一个例子:
     </p>

-<pre class="programlisting">
-<span class="identifier">struct</span> <span class="identifier">PodBayDoorException</span><span class="special">;</span> +<pre class="programlisting"><span class="identifier">struct</span> <span class="identifier">PodBayDoorException</span><span class="special">;</span> <span class="identifier">void</span> <span class="identifier">translator</span><span class="special">(</span><span class="identifier">PodBayDoorException</span> <span class="identifier">const</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span> <span class="identifier">PyErr_SetString</span><span class="special">(</span><span class="identifier">PyExc_UserWarning</span><span class="special">,</span> <span class="string">"I'm sorry Dave..."</span><span class="special">);</span>
 <span class="special">}</span>
@@ -62,9 +59,9 @@
      <span class="special">...</span>
 </pre>
 </div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &copy; 2002-2005 Joel
+<td align="right"><div class="copyright-footer">Copyright © 2002-2005 Joel
       de Guzman, David Abrahams<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">
@@ -74,10 +71,9 @@
       <p>译文更新:2008.5.28</p>
 </div></td>

-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="iterators.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="techniques.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/python/doc/tutorial/doc/html/python/exposing.html Mon Apr 13 21:23:05 2009 +++ /trunk/libs/python/doc/tutorial/doc/html/python/exposing.html Sat Sep 12 00:52:19 2009
@@ -1,31 +1,30 @@
-<html>
-<head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title> Exposing Classes</title>
-<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+
+<title>Exposing Classes</title><link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
 <link rel="start" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="prev" href="hello.html" title=" Building Hello World">
-<link rel="next" href="functions.html" title="Functions">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center"><a href="../../../../../../../index.htm">Home</a></td>
+<link rel="next" href="functions.html" title="Functions"></head>
+<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>
+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> -<td align="center"><a href="../../../../../../../people/people.htm">People</a></td>
-<td align="center"><a href="../../../../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td> <td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="hello.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="functions.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both;">
 <a name="python.exposing"></a> Exposing Classes</h2>
-<h2 class="title" style="clear: both">导出类</h2>
+<h2 class="title" style="clear: both;">导出类</h2>
 </div></div></div>
 <div class="toc"><dl>
<dt><span class="section"><a href="exposing.html#python.constructors">Constructors</a></span></dt>
@@ -63,8 +62,7 @@
       设想,我们要把一个C++类/结构导出到Python:
     </p>

-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">World</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">World</span>
 <span class="special">{</span>
<span class="keyword">void</span> <span class="identifier">set</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">msg</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">this</span><span class="special">-&gt;</span><span class="identifier">msg</span> <span class="special">=</span> <span class="identifier">msg</span><span class="special">;</span> <span class="special">}</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">greet</span><span class="special">()</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">msg</span><span class="special">;</span> <span class="special">}</span>
@@ -79,8 +77,7 @@
       我们可以编写相应的Boost.Python C++封装,把它导出给Python:
     </p>

-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">python</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> +<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">python</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">;</span>

<span class="identifier">BOOST_PYTHON_MODULE</span><span class="special">(</span><span class="identifier">hello</span><span class="special">)</span>
@@ -110,8 +107,7 @@

 <p>
     </p>
-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="keyword">import</span> <span class="identifier">hello</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="keyword">import</span> <span class="identifier">hello</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">planet</span> <span class="special">=</span> <span class="identifier">hello</span><span class="special">.</span><span class="identifier">World</span><span class="special">()</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">planet</span><span class="special">.</span><span class="identifier">set</span><span class="special">(</span><span class="string">'howdy'</span><span class="special">)</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">planet</span><span class="special">.</span><span class="identifier">greet</span><span class="special">()</span>
@@ -136,8 +132,7 @@
 Boost.Python默认情况下会导出默认构造函数,这也就是我们为什么能这样写
     </p>

-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="identifier">planet</span> <span class="special">=</span> <span class="identifier">hello</span><span class="special">.</span><span class="identifier">World</span><span class="special">()</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="identifier">planet</span> <span class="special">=</span> <span class="identifier">hello</span><span class="special">.</span><span class="identifier">World</span><span class="special">()</span>
 </pre>
 <p>
We may wish to wrap a class with a non-default constructor. Let us build
@@ -150,11 +145,9 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">World</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">World</span>
 <span class="special">{</span>
- <span class="identifier">World</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">msg</span><span class="special">):</span> <span class="identifier">msg</span><span class="special">(</span><span class="identifier">msg</span><span class="special">)</span> <span class="special">{}</span> <span class="comment">// added constructor -</span> <span class="keyword">void</span> <span class="identifier">set</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">msg</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">this</span><span class="special">-&gt;</span><span class="identifier">msg</span> <span class="special">=</span> <span class="identifier">msg</span><span class="special">;</span> <span class="special">}</span> + <span class="identifier">World</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">msg</span><span class="special">):</span> <span class="identifier">msg</span><span class="special">(</span><span class="identifier">msg</span><span class="special">)</span> <span class="special">{}</span> <span class="comment">// added constructor<br></span> <span class="keyword">void</span> <span class="identifier">set</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">msg</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">this</span><span class="special">-&gt;</span><span class="identifier">msg</span> <span class="special">=</span> <span class="identifier">msg</span><span class="special">;</span> <span class="special">}</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">greet</span><span class="special">()</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">msg</span><span class="special">;</span> <span class="special">}</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">msg</span><span class="special">;</span>
 <span class="special">};</span>
@@ -173,8 +166,7 @@
 我们想要导出的构造函数。
     </p>

-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">python</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> +<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">python</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">;</span>

<span class="identifier">BOOST_PYTHON_MODULE</span><span class="special">(</span><span class="identifier">hello</span><span class="special">)</span>
@@ -211,8 +203,7 @@
 假设我们有另一个World构造函数,它有两个double参数:
     </p>

-<pre class="programlisting">
-<span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">World</span><span class="special">&gt;(</span><span class="string">"World"</span><span class="special">,</span> <span class="identifier">init</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> +<pre class="programlisting"><span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">World</span><span class="special">&gt;(</span><span class="string">"World"</span><span class="special">,</span> <span class="identifier">init</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="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">init</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;())</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"greet"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">World</span><span class="special">::</span><span class="identifier">greet</span><span class="special">)</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"set"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">World</span><span class="special">::</span><span class="identifier">set</span><span class="special">)</span>
@@ -228,8 +219,7 @@
 我们可以使用<tt class="literal">no_init</tt>:
     </p>

-<pre class="programlisting">
-<span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">Abstract</span><span class="special">&gt;(</span><span class="string">"Abstract"</span><span class="special">,</span> <span class="identifier">no_init</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">Abstract</span><span class="special">&gt;(</span><span class="string">"Abstract"</span><span class="special">,</span> <span class="identifier">no_init</span><span class="special">)</span>
 </pre>
 <p>
This actually adds an <tt class="literal"><span class="underline">_init</span>_</tt>
@@ -264,8 +254,7 @@
 考虑这个类Var:
     </p>

-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">Var</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">Var</span>
 <span class="special">{</span>
<span class="identifier">Var</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">name</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">name</span><span class="special">(</span><span class="identifier">name</span><span class="special">),</span> <span class="identifier">value</span><span class="special">()</span> <span class="special">{}</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="identifier">name</span><span class="special">;</span>
@@ -281,8 +270,7 @@
 我们的C++ <tt class="literal">Var</tt>类和它的数据成员可以导出到Python:
     </p>

-<pre class="programlisting">
-<span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">Var</span><span class="special">&gt;(</span><span class="string">"Var"</span><span class="special">,</span> <span class="identifier">init</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> +<pre class="programlisting"><span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">Var</span><span class="special">&gt;(</span><span class="string">"Var"</span><span class="special">,</span> <span class="identifier">init</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="special">.</span><span class="identifier">def_readonly</span><span class="special">(</span><span class="string">"name"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">Var</span><span class="special">::</span><span class="identifier">name</span><span class="special">)</span> <span class="special">.</span><span class="identifier">def_readwrite</span><span class="special">(</span><span class="string">"value"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">Var</span><span class="special">::</span><span class="identifier">value</span><span class="special">);</span>
 </pre>
@@ -297,8 +285,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">hello</span><span class="special">.</span><span class="identifier">Var</span><span class="special">(</span><span class="string">'pi'</span><span class="special">)</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">hello</span><span class="special">.</span><span class="identifier">Var</span><span class="special">(</span><span class="string">'pi'</span><span class="special">)</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">value</span> <span class="special">=</span> <span class="number">3.14</span> <span class="special">&gt;&gt;&gt;</span> <span class="keyword">print</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">name</span><span class="special">,</span> <span class="string">'is around'</span><span class="special">,</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">value</span> <span class="identifier">pi</span> <span class="keyword">is</span> <span class="identifier">around</span> <span class="number">3.14</span>
@@ -315,11 +302,8 @@
 按<span class="bold"><b>读写</b></span>导出。
     </p>

-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">name</span> <span class="special">=</span> <span class="string">'e'</span> <span class="comment"># can't change name -</span><span class="identifier">Traceback</span> <span class="special">(</span><span class="identifier">most</span> <span class="identifier">recent</span> <span class="identifier">call</span> <span class="identifier">last</span><span class="special">):</span> - <span class="identifier">File</span> <span class="string">"&lt;stdin&gt;"</span><span class="special">,</span> <span class="identifier">line</span> <span class="number">1</span><span class="special">,</span> <span class="keyword">in</span> # -<span class="identifier">AttributeError</span><span class="special">:</span> <span class="identifier">can</span>#<span class="identifier">t</span> <span class="identifier">set</span> <span class="identifier">attribute</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">name</span> <span class="special">=</span> <span class="string">'e'</span> <span class="comment"># can't change name<br></span><span class="identifier">Traceback</span> <span class="special">(</span><span class="identifier">most</span> <span class="identifier">recent</span> <span class="identifier">call</span> <span class="identifier">last</span><span class="special">):</span> + <span class="identifier">File</span> <span class="string">"&lt;stdin&gt;"</span><span class="special">,</span> <span class="identifier">line</span> <span class="number">1</span><span class="special">,</span> <span class="keyword">in</span> #<br><span class="identifier">AttributeError</span><span class="special">:</span> <span class="identifier">can</span>#<span class="identifier">t</span> <span class="identifier">set</span> <span class="identifier">attribute</span>
 </pre>
 </div>
 <div class="section" lang="en">
@@ -344,8 +328,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">Num</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">Num</span>
 <span class="special">{</span>
     <span class="identifier">Num</span><span class="special">();</span>
<span class="keyword">float</span> <span class="identifier">get</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
@@ -368,8 +351,7 @@
 Boost.Python这样封装我们的<tt class="literal">Num</tt>类:
     </p>

-<pre class="programlisting">
-<span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">Num</span><span class="special">&gt;(</span><span class="string">"Num"</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">Num</span><span class="special">&gt;(</span><span class="string">"Num"</span><span class="special">)</span> <span class="special">.</span><span class="identifier">add_property</span><span class="special">(</span><span class="string">"rovalue"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">Num</span><span class="special">::</span><span class="identifier">get</span><span class="special">)</span> <span class="special">.</span><span class="identifier">add_property</span><span class="special">(</span><span class="string">"value"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">Num</span><span class="special">::</span><span class="identifier">get</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">Num</span><span class="special">::</span><span class="identifier">set</span><span class="special">);</span>
 </pre>
@@ -383,13 +365,11 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">Num</span><span class="special">()</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">Num</span><span class="special">()</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">value</span> <span class="special">=</span> <span class="number">3.14</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">value</span><span class="special">,</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">rovalue</span> <span class="special">(</span><span class="number">3.14</span><span class="special">,</span> <span class="number">3.14</span><span class="special">)</span> -<span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">rovalue</span> <span class="special">=</span> <span class="number">2.17</span> <span class="comment"># error!
-</span></pre>
+<span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">rovalue</span> <span class="special">=</span> <span class="number">2.17</span> <span class="comment"># error!<br></span></pre>
 <p>
Take note that the class property <tt class="literal">rovalue</tt> is exposed as <span class="bold"><b>read-only</b></span> since the <tt class="literal">rovalue</tt>
@@ -404,8 +384,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="special">.</span><span class="identifier">add_property</span><span class="special">(</span><span class="string">"rovalue"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">Num</span><span class="special">::</span><span class="identifier">get</span><span class="special">)</span> +<pre class="programlisting"><span class="special">.</span><span class="identifier">add_property</span><span class="special">(</span><span class="string">"rovalue"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">Num</span><span class="special">::</span><span class="identifier">get</span><span class="special">)</span>
 </pre>
 </div>
 <div class="section" lang="en">
@@ -436,8 +415,7 @@
       考虑这个简单的继承结构:
     </p>

-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">Base</span> <span class="special">{</span> <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">Base</span><span class="special">();</span> <span class="special">};</span> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">Base</span> <span class="special">{</span> <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">Base</span><span class="special">();</span> <span class="special">};</span> <span class="keyword">struct</span> <span class="identifier">Derived</span> <span class="special">:</span> <span class="identifier">Base</span> <span class="special">{};</span>
 </pre>
 <p>
@@ -450,8 +428,7 @@
 和<tt class="literal">Derived</tt>对象的实例进行操作:
     </p>

-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">b</span><span class="special">(</span><span class="identifier">Base</span><span class="special">*);</span> +<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">b</span><span class="special">(</span><span class="identifier">Base</span><span class="special">*);</span> <span class="keyword">void</span> <span class="identifier">d</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">*);</span> <span class="identifier">Base</span><span class="special">*</span> <span class="identifier">factory</span><span class="special">()</span> <span class="special">{</span> <span class="keyword">return</span> <span class="keyword">new</span> <span class="identifier">Derived</span><span class="special">;</span> <span class="special">}</span>
 </pre>
@@ -463,8 +440,7 @@
     我们已经见过如何封装基类<tt class="literal">Base</tt>:
     </p>

-<pre class="programlisting">
-<span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">&gt;(</span><span class="string">"Base"</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">&gt;(</span><span class="string">"Base"</span><span class="special">)</span>
     <span class="comment">/*...*/</span>
     <span class="special">;</span>
 </pre>
@@ -478,8 +454,7 @@
 <tt class="literal">Base</tt>的继承关系告诉Boost.Python。像这样:
     </p>

-<pre class="programlisting">
-<span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">bases</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">&gt;</span> <span class="special">&gt;(</span><span class="string">"Derived"</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">bases</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">&gt;</span> <span class="special">&gt;(</span><span class="string">"Derived"</span><span class="special">)</span>
     <span class="comment">/*...*/</span>
     <span class="special">;</span>
 </pre>
@@ -527,8 +502,7 @@
 和<tt class="literal">d</tt>及<tt class="literal">factory</tt>
     </p>

-<pre class="programlisting">
-<span class="identifier">def</span><span class="special">(</span><span class="string">"b"</span><span class="special">,</span> <span class="identifier">b</span><span class="special">);</span> +<pre class="programlisting"><span class="identifier">def</span><span class="special">(</span><span class="string">"b"</span><span class="special">,</span> <span class="identifier">b</span><span class="special">);</span> <span class="identifier">def</span><span class="special">(</span><span class="string">"d"</span><span class="special">,</span> <span class="identifier">d</span><span class="special">);</span> <span class="identifier">def</span><span class="special">(</span><span class="string">"factory"</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">);</span>
 </pre>
@@ -555,9 +529,7 @@
 调用策略</a>。
     </p>

-<pre class="programlisting">
-<span class="comment">// Tell Python to take ownership of factory's result
-</span><span class="identifier">def</span><span class="special">(</span><span class="string">"factory"</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">,</span> +<pre class="programlisting"><span class="comment">// Tell Python to take ownership of factory's result<br></span><span class="identifier">def</span><span class="special">(</span><span class="string">"factory"</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">,</span> <span class="identifier">return_value_policy</span><span class="special">&lt;</span><span class="identifier">manage_new_object</span><span class="special">&gt;());</span>
 </pre>
 </div>
@@ -577,8 +549,7 @@
 继续我们的例子,让我们在<tt class="literal">Base</tt>类中添加一个虚函数:
     </p>

-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">Base</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">Base</span>
 <span class="special">{</span>
<span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">Base</span><span class="special">()</span> <span class="special">{}</span> <span class="keyword">virtual</span> <span class="keyword">int</span> <span class="identifier">f</span><span class="special">()</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
@@ -611,8 +582,7 @@
 这样就可以调用Python中的覆盖函数了:
     </p>

-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">BaseWrap</span> <span class="special">:</span> <span class="identifier">Base</span><span class="special">,</span> <span class="identifier">wrapper</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">&gt;</span> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">BaseWrap</span> <span class="special">:</span> <span class="identifier">Base</span><span class="special">,</span> <span class="identifier">wrapper</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">&gt;</span>
 <span class="special">{</span>
<span class="keyword">int</span> <span class="identifier">f</span><span class="special">()</span>
     <span class="special">{</span>
@@ -679,8 +649,7 @@
最后,导出<tt class="computeroutput"><span class="identifier">Base</span></tt>类:
     </p>

-<pre class="programlisting">
-<span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">BaseWrap</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">noncopyable</span><span class="special">&gt;(</span><span class="string">"Base"</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">BaseWrap</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">noncopyable</span><span class="special">&gt;(</span><span class="string">"Base"</span><span class="special">)</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">pure_virtual</span><span class="special">(&amp;</span><span class="identifier">Base</span><span class="special">::</span><span class="identifier">f</span><span class="special">))</span>
     <span class="special">;</span>
 </pre>
@@ -697,8 +666,8 @@
 是一个纯虚函数。
     </p>

-<div class="note"><table border="0" summary="Note">
-<tr>
+<div class="note"><table summary="Note" border="0">
+<tbody><tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/html/images/note.png"></td>
 <th align="left">Note</th>
 </tr>
@@ -720,7 +689,7 @@
           <span class="bold"><b>成员函数(member function)</b></span>
         </p>
 </td></tr>
-</table></div>
+</tbody></table></div>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
@@ -757,8 +726,7 @@
 我们的基类如下:
     </p>

-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">Base</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">Base</span>
 <span class="special">{</span>
<span class="keyword">virtual</span> <span class="keyword">int</span> <span class="identifier">f</span><span class="special">()</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
 <span class="special">};</span>
@@ -773,8 +741,7 @@
 但是,如果其成员函数<tt class="literal">f</tt>没有声明为纯虚:
     </p>

-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">Base</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">Base</span>
 <span class="special">{</span>
<span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">Base</span><span class="special">()</span> <span class="special">{}</span> <span class="keyword">virtual</span> <span class="keyword">int</span> <span class="identifier">f</span><span class="special">()</span> <span class="special">{</span> <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span> <span class="special">}</span>
@@ -788,14 +755,12 @@
       我们这样封装它:
     </p>

-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">BaseWrap</span> <span class="special">:</span> <span class="identifier">Base</span><span class="special">,</span> <span class="identifier">wrapper</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">&gt;</span> +<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">BaseWrap</span> <span class="special">:</span> <span class="identifier">Base</span><span class="special">,</span> <span class="identifier">wrapper</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">&gt;</span>
 <span class="special">{</span>
<span class="keyword">int</span> <span class="identifier">f</span><span class="special">()</span>
     <span class="special">{</span>
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">override</span> <span class="identifier">f</span> <span class="special">=</span> <span class="keyword">this</span><span class="special">-&gt;</span><span class="identifier">get_override</span><span class="special">(</span><span class="string">"f"</span><span class="special">))</span> - <span class="keyword">return</span> <span class="identifier">f</span><span class="special">();</span> <span class="comment">// *note* -</span> <span class="keyword">return</span> <span class="identifier">Base</span><span class="special">::</span><span class="identifier">f</span><span class="special">();</span> + <span class="keyword">return</span> <span class="identifier">f</span><span class="special">();</span> <span class="comment">// *note*<br></span> <span class="keyword">return</span> <span class="identifier">Base</span><span class="special">::</span><span class="identifier">f</span><span class="special">();</span>
     <span class="special">}</span>

<span class="keyword">int</span> <span class="identifier">default_f</span><span class="special">()</span> <span class="special">{</span> <span class="keyword">return</span> <span class="keyword">this</span><span class="special">-&gt;</span><span class="identifier">Base</span><span class="special">::</span><span class="identifier">f</span><span class="special">();</span> <span class="special">}</span>
@@ -847,8 +812,7 @@
       最后,导出:
     </p>

-<pre class="programlisting">
-<span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">BaseWrap</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">noncopyable</span><span class="special">&gt;(</span><span class="string">"Base"</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">BaseWrap</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">noncopyable</span><span class="special">&gt;(</span><span class="string">"Base"</span><span class="special">)</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">Base</span><span class="special">::</span><span class="identifier">f</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">BaseWrap</span><span class="special">::</span><span class="identifier">default_f</span><span class="special">)</span>
     <span class="special">;</span>
 </pre>
@@ -879,8 +843,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="identifier">base</span> <span class="special">=</span> <span class="identifier">Base</span><span class="special">()</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="identifier">base</span> <span class="special">=</span> <span class="identifier">Base</span><span class="special">()</span> <span class="special">&gt;&gt;&gt;</span> <span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">(</span><span class="identifier">Base</span><span class="special">):</span> <span class="special">...</span> <span class="keyword">def</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">self</span><span class="special">):</span> <span class="special">...</span> <span class="keyword">return</span> <span class="number">42</span>
@@ -895,8 +858,7 @@
         调用<tt class="literal">base.f()</tt>:
     </p>

-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="identifier">base</span><span class="special">.</span><span class="identifier">f</span><span class="special">()</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="identifier">base</span><span class="special">.</span><span class="identifier">f</span><span class="special">()</span>
 <span class="number">0</span>
 </pre>
 <p>
@@ -907,8 +869,7 @@
         调用<tt class="literal">derived.f()</tt>:
     </p>

-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="identifier">derived</span><span class="special">.</span><span class="identifier">f</span><span class="special">()</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="identifier">derived</span><span class="special">.</span><span class="identifier">f</span><span class="special">()</span>
 <span class="number">42</span>
 </pre>
 </div>
@@ -946,8 +907,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="keyword">class</span> <span class="identifier">FilePos</span> <span class="special">{</span> <span class="comment">/*...*/</span> <span class="special">};</span> +<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">FilePos</span> <span class="special">{</span> <span class="comment">/*...*/</span> <span class="special">};</span>

<span class="identifier">FilePos</span> <span class="keyword">operator</span><span class="special">+(</span><span class="identifier">FilePos</span><span class="special">,</span> <span class="keyword">int</span><span class="special">);</span> <span class="identifier">FilePos</span> <span class="keyword">operator</span><span class="special">+(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">FilePos</span><span class="special">);</span>
@@ -966,16 +926,9 @@
 该类和各种运算符可以相当轻松地,并且直观地,映射到Python:
     </p>

-<pre class="programlisting">
-<span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">FilePos</span><span class="special">&gt;(</span><span class="string">"FilePos"</span><span class="special">)</span> - <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">self</span> <span class="special">+</span> <span class="keyword">int</span><span class="special">())</span> <span class="comment">// __add__ -</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="keyword">int</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">self</span><span class="special">)</span> <span class="comment">// __radd__ -</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">self</span> <span class="special">-</span> <span class="identifier">self</span><span class="special">)</span> <span class="comment">// __sub__ -</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">self</span> <span class="special">-</span> <span class="keyword">int</span><span class="special">())</span> <span class="comment">// __sub__ -</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">self</span> <span class="special">+=</span> <span class="keyword">int</span><span class="special">())</span> <span class="comment">// __iadd__ -</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">self</span> <span class="special">-=</span> <span class="identifier">other</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;())</span> - <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">self</span> <span class="special">&lt;</span> <span class="identifier">self</span><span class="special">);</span> <span class="comment">// __lt__
-</span></pre>
+<pre class="programlisting"><span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">FilePos</span><span class="special">&gt;(</span><span class="string">"FilePos"</span><span class="special">)</span> + <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">self</span> <span class="special">+</span> <span class="keyword">int</span><span class="special">())</span> <span class="comment">// __add__<br></span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="keyword">int</span><span class="special">()</span> <span class="special">+</span> <span class="identifier">self</span><span class="special">)</span> <span class="comment">// __radd__<br></span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">self</span> <span class="special">-</span> <span class="identifier">self</span><span class="special">)</span> <span class="comment">// __sub__<br></span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">self</span> <span class="special">-</span> <span class="keyword">int</span><span class="special">())</span> <span class="comment">// __sub__<br></span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">self</span> <span class="special">+=</span> <span class="keyword">int</span><span class="special">())</span> <span class="comment">// __iadd__<br></span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">self</span> <span class="special">-=</span> <span class="identifier">other</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;())</span> + <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">self</span> <span class="special">&lt;</span> <span class="identifier">self</span><span class="special">);</span> <span class="comment">// __lt__<br></span></pre>
 <p>
The code snippet above is very clear and needs almost no explanation at all. It is virtually the same as the operators' signatures. Just take note that
@@ -1020,8 +973,7 @@
 例如:
     </p>

-<pre class="programlisting">
-<span class="keyword">class</span> <span class="identifier">Rational</span>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">Rational</span> <span class="special">{</span> <span class="keyword">public</span><span class="special">:</span> <span class="keyword">operator</span> <span class="keyword">double</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> <span class="special">};</span>

<span class="identifier">Rational</span> <span class="identifier">pow</span><span class="special">(</span><span class="identifier">Rational</span><span class="special">,</span> <span class="identifier">Rational</span><span class="special">);</span>
@@ -1029,11 +981,7 @@
<span class="identifier">ostream</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">ostream</span><span class="special">&amp;,</span><span class="identifier">Rational</span><span class="special">);</span>

<span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">Rational</span><span class="special">&gt;(</span><span class="string">"Rational"</span><span class="special">)</span> - <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">float_</span><span class="special">(</span><span class="identifier">self</span><span class="special">))</span> <span class="comment">// __float__ -</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">pow</span><span class="special">(</span><span class="identifier">self</span><span class="special">,</span> <span class="identifier">other</span><span class="special">&lt;</span><span class="identifier">Rational</span><span class="special">&gt;))</span> <span class="comment">// __pow__ -</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">self</span><span class="special">))</span> <span class="comment">// __abs__ -</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">str</span><span class="special">(</span><span class="identifier">self</span><span class="special">))</span> <span class="comment">// __str__
-</span>    <span class="special">;</span>
+ <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">float_</span><span class="special">(</span><span class="identifier">self</span><span class="special">))</span> <span class="comment">// __float__<br></span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">pow</span><span class="special">(</span><span class="identifier">self</span><span class="special">,</span> <span class="identifier">other</span><span class="special">&lt;</span><span class="identifier">Rational</span><span class="special">&gt;))</span> <span class="comment">// __pow__<br></span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">self</span><span class="special">))</span> <span class="comment">// __abs__<br></span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">str</span><span class="special">(</span><span class="identifier">self</span><span class="special">))</span> <span class="comment">// __str__<br></span> <span class="special">;</span>
 </pre>
 <p>
         Need we say more?
@@ -1043,8 +991,8 @@
       还需要多说吗?
     </p>

-<div class="note"><table border="0" summary="Note">
-<tr>
+<div class="note"><table summary="Note" border="0">
+<tbody><tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/html/images/note.png"></td>
 <th align="left">Note</th>
 </tr>
@@ -1068,9 +1016,9 @@
 </table></div>
 </div>
 </div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &copy; 2002-2005 Joel
+<td align="right"><div class="copyright-footer">Copyright © 2002-2005 Joel
       de Guzman, David Abrahams<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">
@@ -1079,11 +1027,10 @@
       <p>翻译:<a href="http://blog.csdn.net/jq0123";>金庆</a></p>
       <p>译文更新:2008.5.27</p>
 </div></td>
-</tr></table>
+</tr></tbody></table>

 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="hello.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="functions.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/python/doc/tutorial/doc/html/python/functions.html Mon Apr 13 21:23:05 2009 +++ /trunk/libs/python/doc/tutorial/doc/html/python/functions.html Sat Sep 12 00:52:19 2009
@@ -1,31 +1,30 @@
-<html>
-<head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Functions</title>
-<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+
+<title>Functions</title><link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
 <link rel="start" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="prev" href="exposing.html" title=" Exposing Classes">
-<link rel="next" href="object.html" title=" Object Interface">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center"><a href="../../../../../../../index.htm">Home</a></td>
+<link rel="next" href="object.html" title=" Object Interface"></head>
+<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>
+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> -<td align="center"><a href="../../../../../../../people/people.htm">People</a></td>
-<td align="center"><a href="../../../../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td> <td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="exposing.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="object.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both;">
 <a name="python.functions"></a>Functions</h2>
-<h2 class="title" style="clear: both">函数</h2>
+<h2 class="title" style="clear: both;">函数</h2>
 </div></div></div>
 <div class="toc"><dl>
<dt><span class="section"><a href="functions.html#python.call_policies">Call Policies</a></span></dt>
@@ -80,28 +79,7 @@
 <tt class="literal">&gt;&gt;&gt; import this</tt>。
     </p>

-<pre class="programlisting">&gt;&gt;&gt; import this
-The Zen of Python, by Tim Peters
-Beautiful is better than ugly.
-Explicit is better than implicit.
-Simple is better than complex.
-Complex is better than complicated.
-Flat is better than nested.
-Sparse is better than dense.
-Readability counts.
-Special cases aren't special enough to break the rules.
-Although practicality beats purity.
-Errors should never pass silently.
-Unless explicitly silenced.
-In the face of ambiguity, refuse the temptation to guess.
-There should be one-- and preferably only one --obvious way to do it
-Although that way may not be obvious at first unless you're Dutch.
-Now is better than never.
-Although never is often better than <span class="bold"><b>right</b></span> now.
-If the implementation is hard to explain, it's a bad idea.
-If the implementation is easy to explain, it may be a good idea.
-Namespaces are one honking great idea -- let's do more of those!
-</pre>
+<pre class="programlisting">&gt;&gt;&gt; import this<br>The Zen of Python, by Tim Peters<br>Beautiful is better than ugly.<br>Explicit is better than implicit.<br>Simple is better than complex.<br>Complex is better than complicated.<br>Flat is better than nested.<br>Sparse is better than dense.<br>Readability counts.<br>Special cases aren't special enough to break the rules.<br>Although practicality beats purity.<br>Errors should never pass silently.<br>Unless explicitly silenced.<br>In the face of ambiguity, refuse the temptation to guess.<br>There should be one-- and preferably only one --obvious way to do it<br>Although that way may not be obvious at first unless you're Dutch.<br>Now is better than never.<br>Although never is often better than <span class="bold"><b>right</b></span> now.<br>If the implementation is hard to explain, it's a bad idea.<br>If the implementation is easy to explain, it may be a good idea.<br>Namespaces are one honking great idea -- let's do more of those!<br></pre>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="python.call_policies"></a>Call Policies</h3>
@@ -134,8 +112,7 @@
 考虑以下的C++函数:
     </p>

-<pre class="programlisting">
-<span class="identifier">X</span><span class="special">&amp;</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Y</span><span class="special">&amp;</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">Z</span><span class="special">*</span> <span class="identifier">z</span><span class="special">);</span> +<pre class="programlisting"><span class="identifier">X</span><span class="special">&amp;</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Y</span><span class="special">&amp;</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">Z</span><span class="special">*</span> <span class="identifier">z</span><span class="special">);</span>
 </pre>
 <p>
How should the library wrap this function? A naive approach builds a Python
@@ -150,8 +127,7 @@
 这就是不行的例子
     </p>

-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="preprocessor"># x</span> <span class="identifier">refers</span> <span class="identifier">to</span> <span class="identifier">some</span> <span class="identifier">C</span><span class="special">++</span> <span class="identifier">X</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="preprocessor"># x</span> <span class="identifier">refers</span> <span class="identifier">to</span> <span class="identifier">some</span> <span class="identifier">C</span><span class="special">++</span> <span class="identifier">X</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">del</span> <span class="identifier">y</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">some_method</span><span class="special">()</span> <span class="preprocessor"># CRASH</span><span class="special">!</span>
 </pre>
@@ -171,8 +147,7 @@
       好,如果 f() 如下实现会怎样:
     </p>

-<pre class="programlisting">
-<span class="identifier">X</span><span class="special">&amp;</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Y</span><span class="special">&amp;</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">Z</span><span class="special">*</span> <span class="identifier">z</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">X</span><span class="special">&amp;</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Y</span><span class="special">&amp;</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">Z</span><span class="special">*</span> <span class="identifier">z</span><span class="special">)</span>
 <span class="special">{</span>
<span class="identifier">y</span><span class="special">.</span><span class="identifier">z</span> <span class="special">=</span> <span class="identifier">z</span><span class="special">;</span> <span class="keyword">return</span> <span class="identifier">y</span><span class="special">.</span><span class="identifier">x</span><span class="special">;</span>
@@ -248,10 +223,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span> <span class="identifier">z</span><span class="special">).</span><span class="identifier">set</span><span class="special">(</span><span class="number">42</span><span class="special">)</span> <span class="comment"># Result disappears -</span><span class="special">&gt;&gt;&gt;</span> <span class="identifier">y</span><span class="special">.</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">get</span><span class="special">()</span> <span class="comment"># No crash, but still bad
-</span><span class="number">3.14</span>
+<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span> <span class="identifier">z</span><span class="special">).</span><span class="identifier">set</span><span class="special">(</span><span class="number">42</span><span class="special">)</span> <span class="comment"># Result disappears<br></span><span class="special">&gt;&gt;&gt;</span> <span class="identifier">y</span><span class="special">.</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">get</span><span class="special">()</span> <span class="comment"># No crash, but still bad<br></span><span class="number">3.14</span>
 </pre>
 <p>
This is not really our intent of our C++ interface. We've broken our promise
@@ -275,8 +247,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">Y</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">Y</span>
 <span class="special">{</span>
<span class="identifier">X</span> <span class="identifier">x</span><span class="special">;</span> <span class="identifier">Z</span><span class="special">*</span> <span class="identifier">z</span><span class="special">;</span> <span class="keyword">int</span> <span class="identifier">z_value</span><span class="special">()</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">z</span><span class="special">-&gt;</span><span class="identifier">value</span><span class="special">();</span> <span class="special">}</span>
@@ -292,8 +263,7 @@
 现在Y里面有一个潜在的野指针问题:
     </p>

-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="preprocessor"># y</span> <span class="identifier">refers</span> <span class="identifier">to</span> <span class="identifier">z</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="preprocessor"># y</span> <span class="identifier">refers</span> <span class="identifier">to</span> <span class="identifier">z</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">del</span> <span class="identifier">z</span> <span class="preprocessor"># Kill</span> <span class="identifier">the</span> <span class="identifier">z</span> <span class="identifier">object</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">y</span><span class="special">.</span><span class="identifier">z_value</span><span class="special">()</span> <span class="preprocessor"># CRASH</span><span class="special">!</span>
 </pre>
@@ -305,8 +275,7 @@
 这里再次列出<tt class="literal">f</tt>的实现供参考:
     </p>

-<pre class="programlisting">
-<span class="identifier">X</span><span class="special">&amp;</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Y</span><span class="special">&amp;</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">Z</span><span class="special">*</span> <span class="identifier">z</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">X</span><span class="special">&amp;</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Y</span><span class="special">&amp;</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">Z</span><span class="special">*</span> <span class="identifier">z</span><span class="special">)</span>
 <span class="special">{</span>
<span class="identifier">y</span><span class="special">.</span><span class="identifier">z</span> <span class="special">=</span> <span class="identifier">z</span><span class="special">;</span> <span class="keyword">return</span> <span class="identifier">y</span><span class="special">.</span><span class="identifier">x</span><span class="special">;</span>
@@ -385,8 +354,7 @@
 <tt class="literal">with_custodian_and_ward</tt>:
     </p>

-<pre class="programlisting">
-<span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> +<pre class="programlisting"><span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">return_internal_reference</span><span class="special">&lt;</span><span class="number">1</span><span class="special">,</span> <span class="identifier">with_custodian_and_ward</span><span class="special">&lt;</span><span class="number">1</span><span class="special">,</span> <span class="number">2</span><span class="special">&gt;</span> <span class="special">&gt;());</span>
 </pre>
@@ -401,8 +369,7 @@
 是什么?
     </p>

-<pre class="programlisting">
-<span class="identifier">return_internal_reference</span><span class="special">&lt;</span><span class="number">1</span> +<pre class="programlisting"><span class="identifier">return_internal_reference</span><span class="special">&lt;</span><span class="number">1</span>
 </pre>
 <p>
Informs Boost.Python that the first argument, in our case <tt class="literal">Y&amp;
@@ -428,8 +395,7 @@
 ”。
     </p>

-<pre class="programlisting">
-<span class="identifier">with_custodian_and_ward</span><span class="special">&lt;</span><span class="number">1</span><span class="special">,</span> <span class="number">2</span><span class="special">&gt;</span> +<pre class="programlisting"><span class="identifier">with_custodian_and_ward</span><span class="special">&lt;</span><span class="number">1</span><span class="special">,</span> <span class="number">2</span><span class="special">&gt;</span>
 </pre>
 <p>
Informs Boost.Python that the lifetime of the argument indicated by ward
@@ -460,8 +426,7 @@
 这是一般的语法:
     </p>

-<pre class="programlisting">
-<span class="identifier">policy1</span><span class="special">&lt;</span><span class="identifier">args</span><span class="special">...,</span> +<pre class="programlisting"><span class="identifier">policy1</span><span class="special">&lt;</span><span class="identifier">args</span><span class="special">...,</span> <span class="identifier">policy2</span><span class="special">&lt;</span><span class="identifier">args</span><span class="special">...,</span> <span class="identifier">policy3</span><span class="special">&lt;</span><span class="identifier">args</span><span class="special">...&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
 </pre>
@@ -601,8 +566,7 @@
       这里是我们的C++类:
     </p>

-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">X</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">X</span>
 <span class="special">{</span>
<span class="keyword">bool</span> <span class="identifier">f</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">a</span><span class="special">)</span>
     <span class="special">{</span>
@@ -635,8 +599,7 @@
 我们将首先介绍一些成员函数指针变量:
     </p>

-<pre class="programlisting">
-<span class="keyword">bool</span> <span class="special">(</span><span class="identifier">X</span><span class="special">::*</span><span class="identifier">fx1</span><span class="special">)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">=</span> <span class="special">&amp;</span><span class="identifier">X</span><span class="special">::</span><span class="identifier">f</span><span class="special">;</span> +<pre class="programlisting"><span class="keyword">bool</span> <span class="special">(</span><span class="identifier">X</span><span class="special">::*</span><span class="identifier">fx1</span><span class="special">)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">=</span> <span class="special">&amp;</span><span class="identifier">X</span><span class="special">::</span><span class="identifier">f</span><span class="special">;</span> <span class="keyword">bool</span> <span class="special">(</span><span class="identifier">X</span><span class="special">::*</span><span class="identifier">fx2</span><span class="special">)(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">)</span> <span class="special">=</span> <span class="special">&amp;</span><span class="identifier">X</span><span class="special">::</span><span class="identifier">f</span><span class="special">;</span> <span class="keyword">bool</span> <span class="special">(</span><span class="identifier">X</span><span class="special">::*</span><span class="identifier">fx3</span><span class="special">)(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">char</span><span class="special">)=</span> <span class="special">&amp;</span><span class="identifier">X</span><span class="special">::</span><span class="identifier">f</span><span class="special">;</span> <span class="keyword">int</span> <span class="special">(</span><span class="identifier">X</span><span class="special">::*</span><span class="identifier">fx4</span><span class="special">)(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span> <span class="special">=</span> <span class="special">&amp;</span><span class="identifier">X</span><span class="special">::</span><span class="identifier">f</span><span class="special">;</span>
@@ -649,8 +612,7 @@
       有了这些,我们就可以着手为Python进行定义和封装:
     </p>

-<pre class="programlisting">
-<span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">fx1</span><span class="special">)</span> +<pre class="programlisting"><span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">fx1</span><span class="special">)</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">fx2</span><span class="special">)</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">fx3</span><span class="special">)</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">fx4</span><span class="special">)</span>
@@ -673,8 +635,7 @@
 假定函数<tt class="literal">f</tt>具有默认参数:
     </p>

-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">f</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span> <span class="special">=</span> <span class="number">3.14</span><span class="special">,</span> <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="special">=</span> <span class="string">"hello"</span><span class="special">);</span> +<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">f</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span> <span class="special">=</span> <span class="number">3.14</span><span class="special">,</span> <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="special">=</span> <span class="string">"hello"</span><span class="special">);</span>
 </pre>
 <p>
But the type of a pointer to the function <tt class="literal">f</tt> has no information
@@ -686,9 +647,7 @@
 不知道它的默认参数:
     </p>

-<pre class="programlisting">
-<span class="keyword">int</span><span class="special">(*</span><span class="identifier">g</span><span class="special">)(</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">double</span><span class="special">,</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*)</span> <span class="special">=</span> <span class="identifier">f</span><span class="special">;</span> <span class="comment">// defaults lost!
-</span></pre>
+<pre class="programlisting"><span class="keyword">int</span><span class="special">(*</span><span class="identifier">g</span><span class="special">)(</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">double</span><span class="special">,</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*)</span> <span class="special">=</span> <span class="identifier">f</span><span class="special">;</span> <span class="comment">// defaults lost!<br></span></pre>
 <p>
When we pass this function pointer to the <tt class="literal">def</tt> function,
         there is no way to retrieve the default arguments:
@@ -700,9 +659,7 @@
 没有办法获取默认参数:
     </p>

-<pre class="programlisting">
-<span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span> <span class="comment">// defaults lost!
-</span></pre>
+<pre class="programlisting"><span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span> <span class="comment">// defaults lost!<br></span></pre>
 <p>
Because of this, when wrapping C++ code, we had to resort to manual wrapping as outlined in the <a href="functions.html#python.overloading" title="Overloading">previous section</a>,
@@ -716,18 +673,12 @@
 或者编写薄的封装:
     </p>

-<pre class="programlisting">
-<span class="comment">// write "thin wrappers"
-</span><span class="keyword">int</span> <span class="identifier">f1</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span> <span class="special">}</span> +<pre class="programlisting"><span class="comment">// write "thin wrappers"<br></span><span class="keyword">int</span> <span class="identifier">f1</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span> <span class="special">}</span> <span class="keyword">int</span> <span class="identifier">f2</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">y</span><span class="special">)</span> <span class="special">{</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">);</span> <span class="special">}</span>

 <span class="comment">/*...*/</span>

-    <span class="comment">// in module init
-</span> <span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span> <span class="comment">// all arguments -</span> <span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">f2</span><span class="special">);</span> <span class="comment">// two arguments -</span> <span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">f1</span><span class="special">);</span> <span class="comment">// one argument
-</span></pre>
+ <span class="comment">// in module init<br></span> <span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span> <span class="comment">// all arguments<br></span> <span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">f2</span><span class="special">);</span> <span class="comment">// two arguments<br></span> <span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">f1</span><span class="special">);</span> <span class="comment">// one argument<br></span></pre>
 <p>
         When you want to wrap functions (or member functions) that either:
       </p>
@@ -767,8 +718,7 @@
 Boost.Python现在有个更方便的办法。例如,有函数:
     </p>

-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">foo</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">char</span> <span class="identifier">b</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">c</span> <span class="special">=</span> <span class="number">2</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">d</span> <span class="special">=</span> <span class="number">3</span><span class="special">)</span> +<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">foo</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">char</span> <span class="identifier">b</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">c</span> <span class="special">=</span> <span class="number">2</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">d</span> <span class="special">=</span> <span class="number">3</span><span class="special">)</span>
 <span class="special">{</span>
     <span class="comment">/*...*/</span>
 <span class="special">}</span>
@@ -781,8 +731,7 @@
       宏调用:
     </p>

-<pre class="programlisting">
-<span class="identifier">BOOST_PYTHON_FUNCTION_OVERLOADS</span><span class="special">(</span><span class="identifier">foo_overloads</span><span class="special">,</span> <span class="identifier">foo</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">4</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">BOOST_PYTHON_FUNCTION_OVERLOADS</span><span class="special">(</span><span class="identifier">foo_overloads</span><span class="special">,</span> <span class="identifier">foo</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">4</span><span class="special">)</span>
 </pre>
 <p>
will automatically create the thin wrappers for us. This macro will create
@@ -805,8 +754,7 @@
 <tt class="literal">def(...)</tt>函数将自动为我们添加所有foo变量:
     </p>

-<pre class="programlisting">
-<span class="identifier">def</span><span class="special">(</span><span class="string">"foo"</span><span class="special">,</span> <span class="identifier">foo</span><span class="special">,</span> <span class="identifier">foo_overloads</span><span class="special">());</span> +<pre class="programlisting"><span class="identifier">def</span><span class="special">(</span><span class="string">"foo"</span><span class="special">,</span> <span class="identifier">foo</span><span class="special">,</span> <span class="identifier">foo_overloads</span><span class="special">());</span>
 </pre>
 <a name="default_arguments.boost_python_member_function_overloads"></a><h2>
 <a name="id466594"></a>
@@ -842,8 +790,7 @@
 让我们举一个例子:
     </p>

-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">george</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">george</span>
 <span class="special">{</span>
     <span class="keyword">void</span>
<span class="identifier">wack_em</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">b</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="keyword">char</span> <span class="identifier">c</span> <span class="special">=</span> <span class="char">'x'</span><span class="special">)</span>
@@ -860,8 +807,7 @@
       宏调用:
     </p>

-<pre class="programlisting">
-<span class="identifier">BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS</span><span class="special">(</span><span class="identifier">george_overloads</span><span class="special">,</span> <span class="identifier">wack_em</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">3</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS</span><span class="special">(</span><span class="identifier">george_overloads</span><span class="special">,</span> <span class="identifier">wack_em</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">3</span><span class="special">)</span>
 </pre>
 <p>
will generate a set of thin wrappers for george's <tt class="literal">wack_em</tt>
@@ -878,8 +824,7 @@
 然后该类可以用作<tt class="literal">def(...)</tt>的参数:
     </p>

-<pre class="programlisting">
-<span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"wack_em"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">george</span><span class="special">::</span><span class="identifier">wack_em</span><span class="special">,</span> <span class="identifier">george_overloads</span><span class="special">());</span> +<pre class="programlisting"><span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"wack_em"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">george</span><span class="special">::</span><span class="identifier">wack_em</span><span class="special">,</span> <span class="identifier">george_overloads</span><span class="special">());</span>
 </pre>
 <p>
See the <a href="../../../../v2/overloads.html#BOOST_PYTHON_FUNCTION_OVERLOADS-spec" target="_top">overloads
@@ -907,8 +852,7 @@
 例如,类X有构造函数:
     </p>

-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">X</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">X</span>
 <span class="special">{</span>
<span class="identifier">X</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">char</span> <span class="identifier">b</span> <span class="special">=</span> <span class="char">'D'</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">c</span> <span class="special">=</span> <span class="string">"constructor"</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">d</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">);</span>
     <span class="comment">/*...*/</span>
@@ -922,8 +866,7 @@
       你可以轻松地,一次性地添加该构造函数到Boost.Python:
     </p>

-<pre class="programlisting">
-<span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">init</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&gt;())</span> +<pre class="programlisting"><span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="identifier">init</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="special">&gt;())</span>
 </pre>
 <p>
Notice the use of <tt class="literal">init&lt;...&gt;</tt> and <tt class="literal">optional&lt;...&gt;</tt>
@@ -957,8 +900,7 @@
 下面是一个例子:
     </p>

-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">foo</span><span class="special">()</span> +<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">foo</span><span class="special">()</span>
 <span class="special">{</span>
    <span class="comment">/*...*/</span>
 <span class="special">}</span>
@@ -987,8 +929,7 @@
 就像在上一节中,我们可以一下子就为这些函数生成薄封装:
     </p>

-<pre class="programlisting">
-<span class="identifier">BOOST_PYTHON_FUNCTION_OVERLOADS</span><span class="special">(</span><span class="identifier">foo_overloads</span><span class="special">,</span> <span class="identifier">foo</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="number">3</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">BOOST_PYTHON_FUNCTION_OVERLOADS</span><span class="special">(</span><span class="identifier">foo_overloads</span><span class="special">,</span> <span class="identifier">foo</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="number">3</span><span class="special">)</span>
 </pre>
 <p>
         Then...
@@ -998,8 +939,7 @@
       然后……
     </p>

-<pre class="programlisting">
-<span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"foo"</span><span class="special">,</span> <span class="special">(</span><span class="keyword">void</span><span class="special">(*)(</span><span class="keyword">bool</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">char</span><span class="special">))</span><span class="number">0</span><span class="special">,</span> <span class="identifier">foo_overloads</span><span class="special">());</span> +<pre class="programlisting"><span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"foo"</span><span class="special">,</span> <span class="special">(</span><span class="keyword">void</span><span class="special">(*)(</span><span class="keyword">bool</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">char</span><span class="special">))</span><span class="number">0</span><span class="special">,</span> <span class="identifier">foo_overloads</span><span class="special">());</span>
 </pre>
 <p>
Notice though that we have a situation now where we have a minimum of zero
@@ -1058,8 +998,7 @@
 我们将这样做:
     </p>

-<pre class="programlisting">
-<span class="identifier">BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS</span><span class="special">(</span><span class="identifier">xf_overloads</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">4</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS</span><span class="special">(</span><span class="identifier">xf_overloads</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="number">4</span><span class="special">)</span>
 </pre>
 <p>
         Create a member function pointers as above for both X::f overloads:
@@ -1069,8 +1008,7 @@
 与前面一样,为两个X::f重载创建成员函数指针:
     </p>

-<pre class="programlisting">
-<span class="keyword">bool</span> <span class="special">(</span><span class="identifier">X</span><span class="special">::*</span><span class="identifier">fx1</span><span class="special">)(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">char</span><span class="special">)</span> <span class="special">=</span> <span class="special">&amp;</span><span class="identifier">X</span><span class="special">::</span><span class="identifier">f</span><span class="special">;</span> +<pre class="programlisting"><span class="keyword">bool</span> <span class="special">(</span><span class="identifier">X</span><span class="special">::*</span><span class="identifier">fx1</span><span class="special">)(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">char</span><span class="special">)</span> <span class="special">=</span> <span class="special">&amp;</span><span class="identifier">X</span><span class="special">::</span><span class="identifier">f</span><span class="special">;</span> <span class="keyword">int</span> <span class="special">(</span><span class="identifier">X</span><span class="special">::*</span><span class="identifier">fx2</span><span class="special">)(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">)</span> <span class="special">=</span> <span class="special">&amp;</span><span class="identifier">X</span><span class="special">::</span><span class="identifier">f</span><span class="special">;</span>
 </pre>
 <p>
@@ -1081,13 +1019,12 @@
       然后……
     </p>

-<pre class="programlisting">
-<span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">fx1</span><span class="special">,</span> <span class="identifier">xf_overloads</span><span class="special">());</span> +<pre class="programlisting"><span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">fx1</span><span class="special">,</span> <span class="identifier">xf_overloads</span><span class="special">());</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"f"</span><span class="special">,</span> <span class="identifier">fx2</span><span class="special">)</span>
 </pre>
 </div>
 </div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
 <td align="left"></td>
 <td align="right"><div class="copyright-footer">Copyright ?2002-2005 Joel
       de Guzman, David Abrahams<p>
@@ -1098,10 +1035,9 @@
       <p>翻译:<a href="http://blog.csdn.net/jq0123";>金庆</a></p>
       <p>译文更新:2008.5.28</p>
 </div></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="exposing.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="object.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/python/doc/tutorial/doc/html/python/hello.html Mon Apr 13 21:23:05 2009 +++ /trunk/libs/python/doc/tutorial/doc/html/python/hello.html Sat Sep 12 00:52:19 2009
@@ -1,33 +1,32 @@
-<html>
-<head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title> Building Hello World</title>
-<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+
+<title>Building Hello World</title><link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
 <link rel="start" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="prev" href="../index.html" title="Chapter 1. python 1.0">
-<link rel="next" href="exposing.html" title=" Exposing Classes">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center"><a href="../../../../../../../index.htm">Home</a></td>
+<link rel="next" href="exposing.html" title=" Exposing Classes"></head>
+<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>
+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> -<td align="center"><a href="../../../../../../../people/people.htm">People</a></td>
-<td align="center"><a href="../../../../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td> <td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="../index.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="exposing.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div>
-<h2 class="title" style="clear: both">
+<h2 class="title" style="clear: both;">
 <a name="python.hello"></a> Building Hello World</h2>

-<h2 class="title" style="clear: both">
+<h2 class="title" style="clear: both;">
 <a name="python.hello"></a> 构建 Hello World</h2>

 </div></div></div>
@@ -55,8 +54,8 @@
       <span class="bold"><b>bjam</b></span>。
     </p>

-<div class="note"><table border="0" summary="Note">
-<tr>
+<div class="note"><table summary="Note" border="0">
+<tbody><tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/html/images/note.png"></td>
 <th align="left">Note</th>
 </tr>
@@ -96,7 +95,7 @@
     </p>

 </td></tr>
-</table></div>
+</tbody></table></div>
 <p>
We will skip over the details. Our objective will be to simply create the hello world module and run it in Python. For a complete reference to building Boost.Python,
@@ -238,8 +237,7 @@
A file called user-config.jam in your home directory is used to configure your
       tools. In Windows, your home directory can be found by typing:
     </p>
-<pre class="programlisting">ECHO %HOMEDRIVE%%HOMEPATH%
-</pre>
+<pre class="programlisting">ECHO %HOMEDRIVE%%HOMEPATH%<br></pre>
 <p>
into a command prompt window. Your file should at least have the rules for your compiler and your python installation. A specific example of this on Windows
@@ -250,19 +248,13 @@
       你的主目录下的user-config.jam文件,将用来配置工具。
       在Windows上,可以在命令提示窗口中键入:
     </p>
-<pre class="programlisting">ECHO %HOMEDRIVE%%HOMEPATH%
-</pre>
+<pre class="programlisting">ECHO %HOMEDRIVE%%HOMEPATH%<br></pre>
 <p>
       找到你的主目录。该文件至少应该设置你的编译器和python安装。
       Windows上示例如下:
     </p>

-<pre class="programlisting">#  MSVC configuration
-using msvc : 8.0 ;
-
-#  Python configuration
-using python : 2.4 : C:/dev/tools<span class="emphasis"><em>Python</em></span> ;
-</pre>
+<pre class="programlisting"># MSVC configuration<br>using msvc : 8.0 ;<br><br># Python configuration<br>using python : 2.4 : C:/dev/tools<span class="emphasis"><em>Python</em></span> ;<br></pre>
 <p>
The first rule tells Bjam to use the MSVC 8.0 compiler and associated tools. The second rule provides information on Python, its version and where it is
@@ -300,8 +292,7 @@
       最后:
     </p>

-<pre class="programlisting">
-<span class="identifier">bjam</span>
+<pre class="programlisting"><span class="identifier">bjam</span>
 </pre>
 <p>
       It should be building now:
@@ -311,12 +302,7 @@
       它现在应该开始构建了:
     </p>

-<pre class="programlisting">cd C:\dev\boost\libs\python\example\tutorial
-bjam
-...patience...
-...found 1101 targets...
-...updating 35 targets...
-</pre>
+<pre class="programlisting">cd C:\dev\boost\libs\python\example\tutorial<br>bjam<br>...patience...<br>...found 1101 targets...<br>...updating 35 targets...<br></pre>
 <p>
       And so on... Finally:
     </p>
@@ -339,8 +325,8 @@
或类似的东西。如果一切都好,你现在应该已经构建了DLL并运行了Python程 序。
     </p>

-<div class="note"><table border="0" summary="Note">
-<tr>
+<div class="note"><table summary="Note" border="0">
+<tbody><tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/html/images/note.png"></td>
 <th align="left">Note</th>
 </tr>
@@ -353,7 +339,7 @@
         不想让bjam那样做,就向bjam传递 --preserve-test-targets 参数。

       </p></td></tr>
-</table></div>
+</tbody></table></div>
 <div class="blockquote"><blockquote class="blockquote">
 <p>
         </p>
@@ -369,9 +355,9 @@
       </p>
 </blockquote></div>
 </div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &copy; 2002-2005 Joel
+<td align="right"><div class="copyright-footer">Copyright © 2002-2005 Joel
       de Guzman, David Abrahams<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">
@@ -380,10 +366,9 @@
       <p>翻译:<a href="http://blog.csdn.net/jq0123";>金庆</a></p>
       <p>译文更新:2008.5.28</p>
 </div></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="../index.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="exposing.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/python/doc/tutorial/doc/html/python/iterators.html Mon Apr 13 21:23:05 2009 +++ /trunk/libs/python/doc/tutorial/doc/html/python/iterators.html Sat Sep 12 00:52:19 2009
@@ -1,31 +1,30 @@
-<html>
-<head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Iterators</title>
-<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+
+<title>Iterators</title><link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
 <link rel="start" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="prev" href="embedding.html" title="Embedding">
-<link rel="next" href="exception.html" title=" Exception Translation">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center"><a href="../../../../../../../index.htm">Home</a></td>
+<link rel="next" href="exception.html" title=" Exception Translation"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>
+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> -<td align="center"><a href="../../../../../../../people/people.htm">People</a></td>
-<td align="center"><a href="../../../../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td> <td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="embedding.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="exception.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both;">
 <a name="python.iterators"></a>Iterators</h2>
-<h2 class="title" style="clear: both">迭代器</h2>
+<h2 class="title" style="clear: both;">迭代器</h2>
 </div></div></div>
 <p>
In C++, and STL in particular, we see iterators everywhere. Python also has
@@ -116,14 +115,9 @@

 <p>
     </p>
-<pre class="programlisting">
-<span class="identifier">iter</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">__iter__</span><span class="special">()</span> <span class="comment"># get iterator
-</span><span class="keyword">try</span><span class="special">:</span>
+<pre class="programlisting"><span class="identifier">iter</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">__iter__</span><span class="special">()</span> <span class="comment"># get iterator<br></span><span class="keyword">try</span><span class="special">:</span> <span class="keyword">while</span> <span class="number">1</span><span class="special">:</span> - <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">iter</span><span class="special">.</span><span class="identifier">next</span><span class="special">()</span> <span class="comment"># get each item -</span> <span class="special">...</span> <span class="comment"># process y -</span><span class="keyword">except</span> <span class="identifier">StopIteration</span><span class="special">:</span> <span class="keyword">pass</span> <span class="comment"># iterator exhausted
-</span></pre>
+ <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">iter</span><span class="special">.</span><span class="identifier">next</span><span class="special">()</span> <span class="comment"># get each item<br></span> <span class="special">...</span> <span class="comment"># process y<br></span><span class="keyword">except</span> <span class="identifier">StopIteration</span><span class="special">:</span> <span class="keyword">pass</span> <span class="comment"># iterator exhausted<br></span></pre>
 <p>
Boost.Python provides some mechanisms to make C++ iterators play along nicely as Python iterators. What we need to do is to produce appropriate <tt class="computeroutput"><span class="identifier">__iter__</span></tt> function from C++ iterators that
@@ -141,8 +135,7 @@

 <p>
     </p>
-<pre class="programlisting">
-<span class="identifier">object</span> <span class="identifier">get_iterator</span> <span class="special">=</span> <span class="identifier">iterator</span><span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;();</span> +<pre class="programlisting"><span class="identifier">object</span> <span class="identifier">get_iterator</span> <span class="special">=</span> <span class="identifier">iterator</span><span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;();</span> <span class="identifier">object</span> <span class="identifier">iter</span> <span class="special">=</span> <span class="identifier">get_iterator</span><span class="special">(</span><span class="identifier">v</span><span class="special">);</span> <span class="identifier">object</span> <span class="identifier">first</span> <span class="special">=</span> <span class="identifier">iter</span><span class="special">.</span><span class="identifier">next</span><span class="special">();</span>
 </pre>
@@ -154,8 +147,7 @@
        或用于class_&lt;&gt;:
     </p>

-<pre class="programlisting">
-<span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"__iter__"</span><span class="special">,</span> <span class="identifier">iterator</span><span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;())</span> +<pre class="programlisting"><span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"__iter__"</span><span class="special">,</span> <span class="identifier">iterator</span><span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;())</span>
 </pre>
 <p>
       <span class="bold"><b>range</b></span>
@@ -249,8 +241,7 @@

 <p>
     </p>
-<pre class="programlisting">
-<span class="identifier">f</span> <span class="special">=</span> <span class="identifier">Field</span><span class="special">()</span> +<pre class="programlisting"><span class="identifier">f</span> <span class="special">=</span> <span class="identifier">Field</span><span class="special">()</span> <span class="keyword">for</span> <span class="identifier">x</span> <span class="keyword">in</span> <span class="identifier">f</span><span class="special">.</span><span class="identifier">pions</span><span class="special">:</span> <span class="identifier">smash</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="keyword">for</span> <span class="identifier">y</span> <span class="keyword">in</span> <span class="identifier">f</span><span class="special">.</span><span class="identifier">bogons</span><span class="special">:</span>
@@ -266,8 +257,7 @@

 <p>
     </p>
-<pre class="programlisting">
-<span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">F</span><span class="special">&gt;(</span><span class="string">"Field"</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">F</span><span class="special">&gt;(</span><span class="string">"Field"</span><span class="special">)</span> <span class="special">.</span><span class="identifier">property</span><span class="special">(</span><span class="string">"pions"</span><span class="special">,</span> <span class="identifier">range</span><span class="special">(&amp;</span><span class="identifier">F</span><span class="special">::</span><span class="identifier">p_begin</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">F</span><span class="special">::</span><span class="identifier">p_end</span><span class="special">))</span> <span class="special">.</span><span class="identifier">property</span><span class="special">(</span><span class="string">"bogons"</span><span class="special">,</span> <span class="identifier">range</span><span class="special">(&amp;</span><span class="identifier">F</span><span class="special">::</span><span class="identifier">b_begin</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">F</span><span class="special">::</span><span class="identifier">b_end</span><span class="special">));</span>
 </pre>
@@ -302,19 +292,15 @@

 <p>
     </p>
-<pre class="programlisting">
-<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> +<pre class="programlisting"><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> <span class="keyword">void</span> <span class="identifier">list_assign</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">object</span> <span class="identifier">o</span><span class="special">)</span> <span class="special">{</span>
-    <span class="comment">// Turn a Python sequence into an STL input range
-</span> <span class="identifier">stl_input_iterator</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">o</span><span class="special">),</span> <span class="identifier">end</span><span class="special">;</span> + <span class="comment">// Turn a Python sequence into an STL input range<br></span> <span class="identifier">stl_input_iterator</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">o</span><span class="special">),</span> <span class="identifier">end</span><span class="special">;</span> <span class="identifier">l</span><span class="special">.</span><span class="identifier">assign</span><span class="special">(</span><span class="identifier">begin</span><span class="special">,</span> <span class="identifier">end</span><span class="special">);</span>
 <span class="special">}</span>

-<span class="comment">// Part of the wrapper for list&lt;int&gt;
-</span><span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;(</span><span class="string">"list_int"</span><span class="special">)</span> +<span class="comment">// Part of the wrapper for list&lt;int&gt;<br></span><span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;(</span><span class="string">"list_int"</span><span class="special">)</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span><span class="string">"assign"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">list_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;)</span>
-    <span class="comment">// ...
-</span>    <span class="special">;</span>
+ <span class="comment">// ...<br></span> <span class="special">;</span>
 </pre>
 <p>
Now in Python, we can assign any integer sequence to <tt class="computeroutput"><span class="identifier">list_int</span></tt>
@@ -329,14 +315,13 @@

 <p>
     </p>
-<pre class="programlisting">
-<span class="identifier">x</span> <span class="special">=</span> <span class="identifier">list_int</span><span class="special">();</span> +<pre class="programlisting"><span class="identifier">x</span> <span class="special">=</span> <span class="identifier">list_int</span><span class="special">();</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">assign</span><span class="special">([</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">])</span>
 </pre>
 </div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &copy; 2002-2005 Joel
+<td align="right"><div class="copyright-footer">Copyright © 2002-2005 Joel
       de Guzman, David Abrahams<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">
@@ -347,10 +332,9 @@
       <p>译文更新:2008.5.29</p>

 </div></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="embedding.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="exception.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/python/doc/tutorial/doc/html/python/object.html Mon Apr 13 21:23:05 2009 +++ /trunk/libs/python/doc/tutorial/doc/html/python/object.html Sat Sep 12 00:52:19 2009
@@ -1,31 +1,30 @@
-<html>
-<head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title> Object Interface</title>
-<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+
+<title>Object Interface</title><link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
 <link rel="start" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="prev" href="functions.html" title="Functions">
-<link rel="next" href="embedding.html" title="Embedding">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center"><a href="../../../../../../../index.htm">Home</a></td>
+<link rel="next" href="embedding.html" title="Embedding"></head>
+<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>
+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> -<td align="center"><a href="../../../../../../../people/people.htm">People</a></td>
-<td align="center"><a href="../../../../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td> <td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="functions.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="embedding.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both;">
 <a name="python.object"></a> Object Interface</h2>
-<h2 class="title" style="clear: both">
+<h2 class="title" style="clear: both;">
 <a name="python.object"></a>Object接口</h2>
 </div></div></div>
 <div class="toc"><dl>
@@ -111,8 +110,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="keyword">def</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span><span class="special">):</span> +<pre class="programlisting"><span class="keyword">def</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span><span class="special">):</span> <span class="keyword">if</span> <span class="special">(</span><span class="identifier">y</span> <span class="special">==</span> <span class="string">'foo'</span><span class="special">):</span> <span class="identifier">x</span><span class="special">[</span><span class="number">3</span><span class="special">:</span><span class="number">7</span><span class="special">]</span> <span class="special">=</span> <span class="string">'bar'</span>
      <span class="keyword">else</span><span class="special">:</span>
@@ -132,8 +130,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="identifier">object</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">object</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">object</span> <span class="identifier">y</span><span class="special">)</span> <span class="special">{</span> +<pre class="programlisting"><span class="identifier">object</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">object</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">object</span> <span class="identifier">y</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">if</span> <span class="special">(</span><span class="identifier">y</span> <span class="special">==</span> <span class="string">"foo"</span><span class="special">)</span> <span class="identifier">x</span><span class="special">.</span><span class="identifier">slice</span><span class="special">(</span><span class="number">3</span><span class="special">,</span><span class="number">7</span><span class="special">)</span> <span class="special">=</span> <span class="string">"bar"</span><span class="special">;</span>
      <span class="keyword">else</span>
@@ -204,8 +201,7 @@
        例如:
     </p>

-<pre class="programlisting">
-<span class="identifier">str</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="special">==&gt;</span> <span class="string">"1"</span> +<pre class="programlisting"><span class="identifier">str</span><span class="special">(</span><span class="number">1</span><span class="special">)</span> <span class="special">==&gt;</span> <span class="string">"1"</span>
 </pre>
 <p>
Wherever appropriate, a particular derived <tt class="literal">object</tt> has
@@ -221,8 +217,7 @@
     有 <tt class="literal">keys()</tt> 方法:
     </p>

-<pre class="programlisting">
-<span class="identifier">d</span><span class="special">.</span><span class="identifier">keys</span><span class="special">()</span> +<pre class="programlisting"><span class="identifier">d</span><span class="special">.</span><span class="identifier">keys</span><span class="special">()</span>
 </pre>
 <p>
<tt class="literal">make_tuple</tt> is provided for declaring <span class="emphasis"><em>tuple literals</em></span>.
@@ -236,8 +231,7 @@
                例如:
     </p>

-<pre class="programlisting">
-<span class="identifier">make_tuple</span><span class="special">(</span><span class="number">123</span><span class="special">,</span> <span class="char">'D'</span><span class="special">,</span> <span class="string">"Hello, World"</span><span class="special">,</span> <span class="number">0.0</span><span class="special">);</span> +<pre class="programlisting"><span class="identifier">make_tuple</span><span class="special">(</span><span class="number">123</span><span class="special">,</span> <span class="char">'D'</span><span class="special">,</span> <span class="string">"Hello, World"</span><span class="special">,</span> <span class="number">0.0</span><span class="special">);</span>
 </pre>
 <p>
In C++, when Boost.Python <tt class="literal">object</tt>s are used as arguments
@@ -256,12 +250,9 @@
                类型及子类型的实例。
     </p>

-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">str</span> <span class="identifier">name</span><span class="special">)</span> +<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">str</span> <span class="identifier">name</span><span class="special">)</span>
 <span class="special">{</span>
- <span class="identifier">object</span> <span class="identifier">n2</span> <span class="special">=</span> <span class="identifier">name</span><span class="special">.</span><span class="identifier">attr</span><span class="special">(</span><span class="string">"upper"</span><span class="special">)();</span> <span class="comment">// NAME = name.upper() -</span> <span class="identifier">str</span> <span class="identifier">NAME</span> <span class="special">=</span> <span class="identifier">name</span><span class="special">.</span><span class="identifier">upper</span><span class="special">();</span> <span class="comment">// better -</span> <span class="identifier">object</span> <span class="identifier">msg</span> <span class="special">=</span> <span class="string">"%s is bigger than %s"</span> <span class="special">%</span> <span class="identifier">make_tuple</span><span class="special">(</span><span class="identifier">NAME</span><span class="special">,</span><span class="identifier">name</span><span class="special">);</span> + <span class="identifier">object</span> <span class="identifier">n2</span> <span class="special">=</span> <span class="identifier">name</span><span class="special">.</span><span class="identifier">attr</span><span class="special">(</span><span class="string">"upper"</span><span class="special">)();</span> <span class="comment">// NAME = name.upper()<br></span> <span class="identifier">str</span> <span class="identifier">NAME</span> <span class="special">=</span> <span class="identifier">name</span><span class="special">.</span><span class="identifier">upper</span><span class="special">();</span> <span class="comment">// better<br></span> <span class="identifier">object</span> <span class="identifier">msg</span> <span class="special">=</span> <span class="string">"%s is bigger than %s"</span> <span class="special">%</span> <span class="identifier">make_tuple</span><span class="special">(</span><span class="identifier">NAME</span><span class="special">,</span><span class="identifier">name</span><span class="special">);</span>
 <span class="special">}</span>
 </pre>
 <p>
@@ -272,8 +263,7 @@
       更详细的:
     </p>

-<pre class="programlisting">
-<span class="identifier">str</span> <span class="identifier">NAME</span> <span class="special">=</span> <span class="identifier">name</span><span class="special">.</span><span class="identifier">upper</span><span class="special">();</span> +<pre class="programlisting"><span class="identifier">str</span> <span class="identifier">NAME</span> <span class="special">=</span> <span class="identifier">name</span><span class="special">.</span><span class="identifier">upper</span><span class="special">();</span>
 </pre>
 <p>
Illustrates that we provide versions of the str type's methods as C++ member
@@ -284,8 +274,7 @@
        说明,我们以C++成员函数的形式,提供了str类型的各种方法。
     </p>

-<pre class="programlisting">
-<span class="identifier">object</span> <span class="identifier">msg</span> <span class="special">=</span> <span class="string">"%s is bigger than %s"</span> <span class="special">%</span> <span class="identifier">make_tuple</span><span class="special">(</span><span class="identifier">NAME</span><span class="special">,</span><span class="identifier">name</span><span class="special">);</span> +<pre class="programlisting"><span class="identifier">object</span> <span class="identifier">msg</span> <span class="special">=</span> <span class="string">"%s is bigger than %s"</span> <span class="special">%</span> <span class="identifier">make_tuple</span><span class="special">(</span><span class="identifier">NAME</span><span class="special">,</span><span class="identifier">name</span><span class="special">);</span>
 </pre>
 <p>
Demonstrates that you can write the C++ equivalent of <tt class="literal">"format"
@@ -316,18 +305,12 @@
         Python:
       </p>

-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="identifier">d</span> <span class="special">=</span> <span class="identifier">dict</span><span class="special">(</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">__dict__</span><span class="special">)</span> <span class="comment"># copies x.__dict__ -</span><span class="special">&gt;&gt;&gt;</span> <span class="identifier">d</span><span class="special">[</span><span class="string">'whatever'</span><span class="special">]</span> <span class="special">=</span> <span class="number">3</span> <span class="comment"># modifies the copy
-</span></pre>
+<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="identifier">d</span> <span class="special">=</span> <span class="identifier">dict</span><span class="special">(</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">__dict__</span><span class="special">)</span> <span class="comment"># copies x.__dict__<br></span><span class="special">&gt;&gt;&gt;</span> <span class="identifier">d</span><span class="special">[</span><span class="string">'whatever'</span><span class="special">]</span> <span class="special">=</span> <span class="number">3</span> <span class="comment"># modifies the copy<br></span></pre>
 <p>
         C++:
       </p>

-<pre class="programlisting">
-<span class="identifier">dict</span> <span class="identifier">d</span><span class="special">(</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">attr</span><span class="special">(</span><span class="string">"__dict__"</span><span class="special">));</span> <span class="comment">// copies x.__dict__ -</span><span class="identifier">d</span><span class="special">[</span><span class="char">'whatever'</span><span class="special">]</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span> <span class="comment">// modifies the copy
-</span></pre>
+<pre class="programlisting"><span class="identifier">dict</span> <span class="identifier">d</span><span class="special">(</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">attr</span><span class="special">(</span><span class="string">"__dict__"</span><span class="special">));</span> <span class="comment">// copies x.__dict__<br></span><span class="identifier">d</span><span class="special">[</span><span class="char">'whatever'</span><span class="special">]</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span> <span class="comment">// modifies the copy<br></span></pre>
 <a name="derived_object_types.class__lt_t_gt__as_objects"></a><h2>
 <a name="id469744"></a>
         class_&lt;T&gt; as objects
@@ -355,8 +338,7 @@
                我们可以利用这个来创建封装的实例。例如:
     </p>

-<pre class="programlisting">
-<span class="identifier">object</span> <span class="identifier">vec345</span> <span class="special">=</span> <span class="special">(</span> +<pre class="programlisting"><span class="identifier">object</span> <span class="identifier">vec345</span> <span class="special">=</span> <span class="special">(</span> <span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">Vec2</span><span class="special">&gt;(</span><span class="string">"Vec2"</span><span class="special">,</span> <span class="identifier">init</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;())</span> <span class="special">.</span><span class="identifier">def_readonly</span><span class="special">(</span><span class="string">"length"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">Point</span><span class="special">::</span><span class="identifier">length</span><span class="special">)</span> <span class="special">.</span><span class="identifier">def_readonly</span><span class="special">(</span><span class="string">"angle"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">Point</span><span class="special">::</span><span class="identifier">angle</span><span class="special">)</span>
@@ -383,9 +365,7 @@
                考虑以下代码:
     </p>

-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">attr</span><span class="special">(</span><span class="string">"length"</span><span class="special">);</span> <span class="comment">// compile error
-</span></pre>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">o</span><span class="special">.</span><span class="identifier">attr</span><span class="special">(</span><span class="string">"length"</span><span class="special">);</span> <span class="comment">// compile error<br></span></pre>
 <p>
In the code above, we got a compiler error because Boost.Python <tt class="literal">object</tt> can't be implicitly converted to <tt class="literal">double</tt>s. Instead, what
@@ -401,8 +381,7 @@
                可以这样改写,以达到我们上面的目的:
     </p>

-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">l</span> <span class="special">=</span> <span class="identifier">extract</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;(</span><span class="identifier">o</span><span class="special">.</span><span class="identifier">attr</span><span class="special">(</span><span class="string">"length"</span><span class="special">));</span> +<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">l</span> <span class="special">=</span> <span class="identifier">extract</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;(</span><span class="identifier">o</span><span class="special">.</span><span class="identifier">attr</span><span class="special">(</span><span class="string">"length"</span><span class="special">));</span> <span class="identifier">Vec2</span><span class="special">&amp;</span> <span class="identifier">v</span> <span class="special">=</span> <span class="identifier">extract</span><span class="special">&lt;</span><span class="identifier">Vec2</span><span class="special">&amp;&gt;(</span><span class="identifier">o</span><span class="special">);</span> <span class="identifier">assert</span><span class="special">(</span><span class="identifier">l</span> <span class="special">==</span> <span class="identifier">v</span><span class="special">.</span><span class="identifier">length</span><span class="special">());</span>
 </pre>
@@ -441,8 +420,7 @@
         为了避免异常,我们需要测试可提取性:
     </p>

-<pre class="programlisting">
-<span class="identifier">extract</span><span class="special">&lt;</span><span class="identifier">Vec2</span><span class="special">&amp;&gt;</span> <span class="identifier">x</span><span class="special">(</span><span class="identifier">o</span><span class="special">);</span> +<pre class="programlisting"><span class="identifier">extract</span><span class="special">&lt;</span><span class="identifier">Vec2</span><span class="special">&amp;&gt;</span> <span class="identifier">x</span><span class="special">(</span><span class="identifier">o</span><span class="special">);</span> <span class="keyword">if</span> <span class="special">(</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">check</span><span class="special">())</span> <span class="special">{</span> <span class="identifier">Vec2</span><span class="special">&amp;</span> <span class="identifier">v</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">();</span> <span class="special">...</span>
 </pre>
@@ -458,10 +436,8 @@
       </p>


-<pre class="programlisting">
-<span class="identifier">dict</span> <span class="identifier">d</span> <span class="special">=</span> <span class="identifier">extract</span><span class="special">&lt;</span><span class="identifier">dict</span><span class="special">&gt;(</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">attr</span><span class="special">(</span><span class="string">"__dict__"</span><span class="special">));</span> -<span class="identifier">d</span><span class="special">[</span><span class="string">"whatever"</span><span class="special">]</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span> <span class="comment">// modifies x.__dict__ !
-</span></pre>
+<pre class="programlisting"><span class="identifier">dict</span> <span class="identifier">d</span> <span class="special">=</span> <span class="identifier">extract</span><span class="special">&lt;</span><span class="identifier">dict</span><span class="special">&gt;(</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">attr</span><span class="special">(</span><span class="string">"__dict__"</span><span class="special">));</span> +<span class="identifier">d</span><span class="special">[</span><span class="string">"whatever"</span><span class="special">]</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span> <span class="comment">// modifies x.__dict__ !<br></span></pre>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
@@ -489,8 +465,7 @@
                为了说明这一点,假设有一个C++ enum:
     </p>

-<pre class="programlisting">
-<span class="keyword">enum</span> <span class="identifier">choice</span> <span class="special">{</span> <span class="identifier">red</span><span class="special">,</span> <span class="identifier">blue</span> <span class="special">};</span> +<pre class="programlisting"><span class="keyword">enum</span> <span class="identifier">choice</span> <span class="special">{</span> <span class="identifier">red</span><span class="special">,</span> <span class="identifier">blue</span> <span class="special">};</span>
 </pre>
 <p>
         the construct:
@@ -500,8 +475,7 @@
                构造:
     </p>

-<pre class="programlisting">
-<span class="identifier">enum_</span><span class="special">&lt;</span><span class="identifier">choice</span><span class="special">&gt;(</span><span class="string">"choice"</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">enum_</span><span class="special">&lt;</span><span class="identifier">choice</span><span class="special">&gt;(</span><span class="string">"choice"</span><span class="special">)</span> <span class="special">.</span><span class="identifier">value</span><span class="special">(</span><span class="string">"red"</span><span class="special">,</span> <span class="identifier">red</span><span class="special">)</span> <span class="special">.</span><span class="identifier">value</span><span class="special">(</span><span class="string">"blue"</span><span class="special">,</span> <span class="identifier">blue</span><span class="special">)</span>
     <span class="special">;</span>
@@ -522,8 +496,8 @@
                即作为第一个参数传入的C++类型的相关类型。
     </p>

-<div class="note"><table border="0" summary="Note">
-<tr>
+<div class="note"><table summary="Note" border="0">
+<tbody><tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/html/images/note.png"></td>
 <th align="left">Note</th>
 </tr>
@@ -546,12 +520,11 @@
               scope(范围)是一个类,它具有一个相关的全局Python对象,
               控制着Python名字空间,
               其中新的扩展类和封装的函数,被定义为属性。
-              详情可以在<a href="../../../../v2/scope.html"
-              target="_top">这里</a>找到。
+ 详情可以在<a href="../../../../v2/scope.html" target="_top">这里</a>找到。
         </p>

 </td></tr>
-</table></div>
+</tbody></table></div>
 <p>
         You can access those values in Python as
       </p>
@@ -562,8 +535,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="identifier">my_module</span><span class="special">.</span><span class="identifier">choice</span><span class="special">.</span><span class="identifier">red</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="identifier">my_module</span><span class="special">.</span><span class="identifier">choice</span><span class="special">.</span><span class="identifier">red</span> <span class="identifier">my_module</span><span class="special">.</span><span class="identifier">choice</span><span class="special">.</span><span class="identifier">red</span>
 </pre>
 <p>
@@ -578,23 +550,21 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="identifier">scope</span> <span class="identifier">in_X</span> <span class="special">=</span> <span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;(</span><span class="string">"X"</span><span class="special">)</span> +<pre class="programlisting"><span class="identifier">scope</span> <span class="identifier">in_X</span> <span class="special">=</span> <span class="identifier">class_</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;(</span><span class="string">"X"</span><span class="special">)</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span> <span class="special">...</span> <span class="special">)</span> <span class="special">.</span><span class="identifier">def</span><span class="special">(</span> <span class="special">...</span> <span class="special">)</span>
             <span class="special">;</span>

-<span class="comment">// Expose X::nested as X.nested
-</span><span class="identifier">enum_</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">::</span><span class="identifier">nested</span><span class="special">&gt;(</span><span class="string">"nested"</span><span class="special">)</span> +<span class="comment">// Expose X::nested as X.nested<br></span><span class="identifier">enum_</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">::</span><span class="identifier">nested</span><span class="special">&gt;(</span><span class="string">"nested"</span><span class="special">)</span> <span class="special">.</span><span class="identifier">value</span><span class="special">(</span><span class="string">"red"</span><span class="special">,</span> <span class="identifier">red</span><span class="special">)</span> <span class="special">.</span><span class="identifier">value</span><span class="special">(</span><span class="string">"blue"</span><span class="special">,</span> <span class="identifier">blue</span><span class="special">)</span>
     <span class="special">;</span>
 </pre>
 </div>
 </div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &copy; 2002-2005 Joel
+<td align="right"><div class="copyright-footer">Copyright © 2002-2005 Joel
       de Guzman, David Abrahams<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">
@@ -603,10 +573,9 @@
       <p>翻译:<a href="http://blog.csdn.net/jq0123";>金庆</a></p>
       <p>译文更新:2008.5.29</p>
 </div></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="functions.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="embedding.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/python/doc/tutorial/doc/html/python/techniques.html Mon Apr 13 21:23:05 2009 +++ /trunk/libs/python/doc/tutorial/doc/html/python/techniques.html Sat Sep 12 00:52:19 2009
@@ -1,30 +1,29 @@
-<html>
-<head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title> General Techniques</title>
-<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+
+<title>General Techniques</title><link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
 <link rel="start" href="../index.html" title="Chapter 1. python 1.0">
 <link rel="up" href="../index.html" title="Chapter 1. python 1.0">
-<link rel="prev" href="exception.html" title=" Exception Translation">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center"><a href="../../../../../../../index.htm">Home</a></td>
+<link rel="prev" href="exception.html" title=" Exception Translation"></head> +<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>
+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../../../boost.png" height="86" width="277"></td>
+<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td> -<td align="center"><a href="../../../../../../../people/people.htm">People</a></td>
-<td align="center"><a href="../../../../../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> +<td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td> <td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="exception.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a>
 </div>
 <div class="section" lang="en">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both;">
 <a name="python.techniques"></a> General Techniques</h2>
-<h2 class="title" style="clear: both">通用技术</h2>
+<h2 class="title" style="clear: both;">通用技术</h2>
 </div></div></div>
 <div class="toc"><dl>
<dt><span class="section"><a href="techniques.html#python.creating_packages">Creating Packages</a></span></dt>
@@ -91,8 +90,7 @@
                我们库已经有一个整洁的C++名字空间层次,像这样:
     </p>

-<pre class="programlisting">
-<span class="identifier">sounds</span><span class="special">::</span><span class="identifier">core</span> +<pre class="programlisting"><span class="identifier">sounds</span><span class="special">::</span><span class="identifier">core</span> <span class="identifier">sounds</span><span class="special">::</span><span class="identifier">io</span> <span class="identifier">sounds</span><span class="special">::</span><span class="identifier">filters</span>
 </pre>
@@ -105,10 +103,8 @@
                我们想向Python用户呈现这一相同的层次结构,让他可以这样写代码:
     </p>

-<pre class="programlisting">
-<span class="keyword">import</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">filters</span> -<span class="identifier">sounds</span><span class="special">.</span><span class="identifier">filters</span><span class="special">.</span><span class="identifier">echo</span><span class="special">(...)</span> <span class="comment"># echo is a C++ function
-</span></pre>
+<pre class="programlisting"><span class="keyword">import</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">filters</span> +<span class="identifier">sounds</span><span class="special">.</span><span class="identifier">filters</span><span class="special">.</span><span class="identifier">echo</span><span class="special">(...)</span> <span class="comment"># echo is a C++ function<br></span></pre>
 <p>
The first step is to write the wrapping code. We have to export each module
         separately with Boost.Python, like this:
@@ -119,8 +115,7 @@
                我们必须用Boost.Python分别导出每个模块,像这样:
     </p>

-<pre class="programlisting">
-<span class="special">/*</span> <span class="identifier">file</span> <span class="identifier">core</span><span class="special">.</span><span class="identifier">cpp</span> <span class="special">*/</span> +<pre class="programlisting"><span class="special">/*</span> <span class="identifier">file</span> <span class="identifier">core</span><span class="special">.</span><span class="identifier">cpp</span> <span class="special">*/</span> <span class="identifier">BOOST_PYTHON_MODULE</span><span class="special">(</span><span class="identifier">core</span><span class="special">)</span>
 <span class="special">{</span>
<span class="special">/*</span> <span class="identifier">export</span> <span class="identifier">everything</span> <span class="keyword">in</span> <span class="identifier">the</span> <span class="identifier">sounds</span><span class="special">::</span><span class="identifier">core</span> <span class="identifier">namespace</span> <span class="special">*/</span>
@@ -153,8 +148,8 @@
         <tt class="literal">filters.pyd</tt>。
       </p>

-<div class="note"><table border="0" summary="Note">
-<tr>
+<div class="note"><table summary="Note" border="0">
+<tbody><tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/html/images/note.png"></td>
 <th align="left">Note</th>
 </tr>
@@ -173,7 +168,7 @@
               Windows上是<tt class="literal">.dll</tt>。

         </p></td></tr>
-</table></div>
+</tbody></table></div>
 <p>
         Now, we create this directory structure for our Python package:
       </p>
@@ -182,12 +177,7 @@
                现在,我们为我们的Python包建立了这个目录结构:
     </p>

-<pre class="programlisting">sounds/
-    __init__.py
-    core.pyd
-    filters.pyd
-    io.pyd
-</pre>
+<pre class="programlisting">sounds/<br> __init__.py<br> core.pyd<br> filters.pyd<br> io.pyd<br></pre>
 <p>
The file <tt class="literal">__init__.py</tt> is what tells Python that the directory <tt class="literal">sounds/</tt> is actually a Python package. It can be a empty
@@ -219,8 +209,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="keyword">import</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">io</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="keyword">import</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">io</span> <span class="special">&gt;&gt;&gt;</span> <span class="keyword">import</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">filters</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">sound</span> <span class="special">=</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">io</span><span class="special">.</span><span class="identifier">open</span><span class="special">(</span><span class="string">'file.mp3'</span><span class="special">)</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">new_sound</span> <span class="special">=</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">filters</span><span class="special">.</span><span class="identifier">echo</span><span class="special">(</span><span class="identifier">sound</span><span class="special">,</span> <span class="number">1.0</span><span class="special">)</span>
@@ -267,8 +256,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="comment">/* file core.cpp */</span>
+<pre class="programlisting"><span class="comment">/* file core.cpp */</span> <span class="identifier">BOOST_PYTHON_MODULE</span><span class="special">(</span><span class="identifier">_core</span><span class="special">)</span>
 <span class="special">{</span>
     <span class="special">...</span>
@@ -289,18 +277,7 @@
                现在,我们软件包的层次结构改为象这样:
     </p>

-<pre class="programlisting">sounds/
-    __init__.py
-    core/
-        __init__.py
-        <span class="underline">core.pyd
-    filters/
-        \</span>_init__.py
-        <span class="underline">filters.pyd
-    io/
-        \</span>_init__.py
-        _io.pyd
-</pre>
+<pre class="programlisting">sounds/<br> __init__.py<br> core/<br> __init__.py<br> <span class="underline">core.pyd<br> filters/<br> \</span>_init__.py<br> <span class="underline">filters.pyd<br> io/<br> \</span>_init__.py<br> _io.pyd<br></pre>
 <p>
Note that we created a directory for each extension module, and added a __init__.py to each one. But if we leave it that way, the user will have to access the
@@ -316,8 +293,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="keyword">import</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">core</span><span class="special">.</span><span class="identifier">_core</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="keyword">import</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">core</span><span class="special">.</span><span class="identifier">_core</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">core</span><span class="special">.</span><span class="identifier">_core</span><span class="special">.</span><span class="identifier">foo</span><span class="special">(...)</span>
 </pre>
 <p>
@@ -342,8 +318,7 @@
                中加入这行代码:
     </p>

-<pre class="programlisting">
-<span class="keyword">from</span> <span class="identifier">_core</span> <span class="keyword">import</span> <span class="special">*</span> +<pre class="programlisting"><span class="keyword">from</span> <span class="identifier">_core</span> <span class="keyword">import</span> <span class="special">*</span>
 </pre>
 <p>
We do the same for the other packages. Now the user accesses the functions
@@ -355,8 +330,7 @@
       现在,用户可以和以前一样访问扩展模块中的函数和类了:
     </p>

-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="keyword">import</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">filters</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="keyword">import</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">filters</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">filters</span><span class="special">.</span><span class="identifier">echo</span><span class="special">(...)</span>
 </pre>
 <p>
@@ -383,8 +357,7 @@
       文件,并如下编写我们的函数:
     </p>

-<pre class="programlisting">
-<span class="keyword">import</span> <span class="identifier">_filters</span> +<pre class="programlisting"><span class="keyword">import</span> <span class="identifier">_filters</span> <span class="keyword">def</span> <span class="identifier">echo_noise</span><span class="special">(</span><span class="identifier">sound</span><span class="special">):</span> <span class="identifier">s</span> <span class="special">=</span> <span class="identifier">_filters</span><span class="special">.</span><span class="identifier">echo</span><span class="special">(</span><span class="identifier">sound</span><span class="special">)</span> <span class="identifier">s</span> <span class="special">=</span> <span class="identifier">_filters</span><span class="special">.</span><span class="identifier">noise</span><span class="special">(</span><span class="identifier">sound</span><span class="special">)</span>
@@ -399,8 +372,7 @@
                <tt class="literal">sounds/filters/__init__.py</tt>:
     </p>

-<pre class="programlisting">
-<span class="keyword">from</span> <span class="identifier">echo_noise</span> <span class="keyword">import</span> <span class="identifier">echo_noise</span> +<pre class="programlisting"><span class="keyword">from</span> <span class="identifier">echo_noise</span> <span class="keyword">import</span> <span class="identifier">echo_noise</span>
 </pre>
 <p>
And that's it. The user now accesses this function like any other function
@@ -413,8 +385,7 @@
                包中的任何其他函数一样访问这个函数了:
     </p>

-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="keyword">import</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">filters</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="keyword">import</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">filters</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">sounds</span><span class="special">.</span><span class="identifier">filters</span><span class="special">.</span><span class="identifier">echo_noise</span><span class="special">(...)</span>
 </pre>
 </div>
@@ -433,14 +404,11 @@
        即使是在类创建之后:
     </p>

-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="keyword">class</span> <span class="identifier">C</span><span class="special">(</span><span class="identifier">object</span><span class="special">):</span> <span class="keyword">pass</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="keyword">class</span> <span class="identifier">C</span><span class="special">(</span><span class="identifier">object</span><span class="special">):</span> <span class="keyword">pass</span>
 <span class="special">&gt;&gt;&gt;</span>
-<span class="special">&gt;&gt;&gt;</span> <span class="comment"># a regular function -</span><span class="special">&gt;&gt;&gt;</span> <span class="keyword">def</span> <span class="identifier">C_str</span><span class="special">(</span><span class="identifier">self</span><span class="special">):</span> <span class="keyword">return</span> <span class="string">'A C instance!'</span> +<span class="special">&gt;&gt;&gt;</span> <span class="comment"># a regular function<br></span><span class="special">&gt;&gt;&gt;</span> <span class="keyword">def</span> <span class="identifier">C_str</span><span class="special">(</span><span class="identifier">self</span><span class="special">):</span> <span class="keyword">return</span> <span class="string">'A C instance!'</span>
 <span class="special">&gt;&gt;&gt;</span>
-<span class="special">&gt;&gt;&gt;</span> <span class="comment"># now we turn it in a member function -</span><span class="special">&gt;&gt;&gt;</span> <span class="identifier">C</span><span class="special">.</span><span class="identifier">__str__</span> <span class="special">=</span> <span class="identifier">C_str</span> +<span class="special">&gt;&gt;&gt;</span> <span class="comment"># now we turn it in a member function<br></span><span class="special">&gt;&gt;&gt;</span> <span class="identifier">C</span><span class="special">.</span><span class="identifier">__str__</span> <span class="special">=</span> <span class="identifier">C_str</span>
 <span class="special">&gt;&gt;&gt;</span>
<span class="special">&gt;&gt;&gt;</span> <span class="identifier">c</span> <span class="special">=</span> <span class="identifier">C</span><span class="special">()</span> <span class="special">&gt;&gt;&gt;</span> <span class="keyword">print</span> <span class="identifier">c</span>
@@ -468,8 +436,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="keyword">class</span> <span class="identifier">point</span> <span class="special">{...};</span> +<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">point</span> <span class="special">{...};</span>

<span class="identifier">BOOST_PYTHON_MODULE</span><span class="special">(</span><span class="identifier">_geom</span><span class="special">)</span>
 <span class="special">{</span>
@@ -491,15 +458,12 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="keyword">from</span> <span class="identifier">_geom</span> <span class="keyword">import</span> <span class="special">*</span>
-
-<span class="comment"># a regular function
-</span><span class="keyword">def</span> <span class="identifier">point_str</span><span class="special">(</span><span class="identifier">self</span><span class="special">):</span> +<pre class="programlisting"><span class="keyword">from</span> <span class="identifier">_geom</span> <span class="keyword">import</span> <span class="special">*</span>
+
+<span class="comment"># a regular function<br></span><span class="keyword">def</span> <span class="identifier">point_str</span><span class="special">(</span><span class="identifier">self</span><span class="special">):</span> <span class="keyword">return</span> <span class="identifier">str</span><span class="special">((</span><span class="identifier">self</span><span class="special">.</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">self</span><span class="special">.</span><span class="identifier">y</span><span class="special">))</span>

-<span class="comment"># now we turn it into a member function
-</span><span class="identifier">point</span><span class="special">.</span><span class="identifier">__str__</span> <span class="special">=</span> <span class="identifier">point_str</span> +<span class="comment"># now we turn it into a member function<br></span><span class="identifier">point</span><span class="special">.</span><span class="identifier">__str__</span> <span class="special">=</span> <span class="identifier">point_str</span>
 </pre>
 <p>
<span class="bold"><b>All</b></span> point instances created from C++ will
@@ -554,10 +518,7 @@
        让我们创建一个特别的元类,用来向其他类“注入”方法。
     </p>

-<pre class="programlisting">
-<span class="comment"># The one Boost.Python uses for all wrapped classes.
-</span><span class="comment"># You can use here any class exported by Boost instead of "point" -</span><span class="identifier">BoostPythonMetaclass</span> <span class="special">=</span> <span class="identifier">point</span><span class="special">.</span><span class="identifier">__class__</span> +<pre class="programlisting"><span class="comment"># The one Boost.Python uses for all wrapped classes.<br></span><span class="comment"># You can use here any class exported by Boost instead of "point"<br></span><span class="identifier">BoostPythonMetaclass</span> <span class="special">=</span> <span class="identifier">point</span><span class="special">.</span><span class="identifier">__class__</span>

<span class="keyword">class</span> <span class="identifier">injector</span><span class="special">(</span><span class="identifier">object</span><span class="special">):</span> <span class="keyword">class</span> <span class="identifier">__metaclass__</span><span class="special">(</span><span class="identifier">BoostPythonMetaclass</span><span class="special">):</span>
@@ -568,8 +529,7 @@
<span class="identifier">setattr</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span><span class="identifier">k</span><span class="special">,</span><span class="identifier">v</span><span class="special">)</span> <span class="keyword">return</span> <span class="identifier">type</span><span class="special">.</span><span class="identifier">__init__</span><span class="special">(</span><span class="identifier">self</span><span class="special">,</span> <span class="identifier">name</span><span class="special">,</span> <span class="identifier">bases</span><span class="special">,</span> <span class="identifier">dict</span><span class="special">)</span>

-<span class="comment"># inject some methods in the point foo
-</span><span class="keyword">class</span> <span class="identifier">more_point</span><span class="special">(</span><span class="identifier">injector</span><span class="special">,</span> <span class="identifier">point</span><span class="special">):</span> +<span class="comment"># inject some methods in the point foo<br></span><span class="keyword">class</span> <span class="identifier">more_point</span><span class="special">(</span><span class="identifier">injector</span><span class="special">,</span> <span class="identifier">point</span><span class="special">):</span> <span class="keyword">def</span> <span class="identifier">__repr__</span><span class="special">(</span><span class="identifier">self</span><span class="special">):</span> <span class="keyword">return</span> <span class="string">'Point(x=%s, y=%s)'</span> <span class="special">%</span> <span class="special">(</span><span class="identifier">self</span><span class="special">.</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">self</span><span class="special">.</span><span class="identifier">y</span><span class="special">)</span> <span class="keyword">def</span> <span class="identifier">foo</span><span class="special">(</span><span class="identifier">self</span><span class="special">):</span>
@@ -583,8 +543,7 @@
        现在让我们来看看结果:
     </p>

-<pre class="programlisting">
-<span class="special">&gt;&gt;&gt;</span> <span class="keyword">print</span> <span class="identifier">point</span><span class="special">()</span> +<pre class="programlisting"><span class="special">&gt;&gt;&gt;</span> <span class="keyword">print</span> <span class="identifier">point</span><span class="special">()</span> <span class="identifier">Point</span><span class="special">(</span><span class="identifier">x</span><span class="special">=</span><span class="number">10</span><span class="special">,</span> <span class="identifier">y</span><span class="special">=</span><span class="number">10</span><span class="special">)</span> <span class="special">&gt;&gt;&gt;</span> <span class="identifier">point</span><span class="special">().</span><span class="identifier">foo</span><span class="special">()</span>
 <span class="identifier">foo</span><span class="special">!</span>
@@ -597,8 +556,7 @@
        另一种有用的想法是,用工厂函数取代构造函数:
     </p>

-<pre class="programlisting">
-<span class="identifier">_point</span> <span class="special">=</span> <span class="identifier">point</span> +<pre class="programlisting"><span class="identifier">_point</span> <span class="special">=</span> <span class="identifier">point</span>

<span class="keyword">def</span> <span class="identifier">point</span><span class="special">(</span><span class="identifier">x</span><span class="special">=</span><span class="number">0</span><span class="special">,</span> <span class="identifier">y</span><span class="special">=</span><span class="number">0</span><span class="special">):</span> <span class="keyword">return</span> <span class="identifier">_point</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span><span class="special">)</span>
@@ -641,8 +599,7 @@

 <p>
       </p>
-<pre class="programlisting">
-<span class="comment">/* file point.cpp */</span>
+<pre class="programlisting"><span class="comment">/* file point.cpp */</span> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">point</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">python</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>

@@ -671,8 +628,7 @@
        并在里面调用各导出函数。
     </p>

-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">export_point</span><span class="special">();</span> +<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">export_point</span><span class="special">();</span> <span class="keyword">void</span> <span class="identifier">export_triangle</span><span class="special">();</span>

<span class="identifier">BOOST_PYTHON_MODULE</span><span class="special">(</span><span class="identifier">_geom</span><span class="special">)</span>
@@ -690,8 +646,7 @@
        编译和链接所有这些文件,与以下通常的方法相比,结果是一样的:
     </p>

-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">python</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> +<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">python</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">point</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">triangle</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>

@@ -724,8 +679,8 @@
        而不是整个封装代码。
     </p>

-<div class="note"><table border="0" summary="Note">
-<tr>
+<div class="note"><table summary="Note" border="0">
+<tbody><tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/html/images/note.png"></td>
 <th align="left">Note</th>
 </tr>
@@ -744,10 +699,10 @@
                        就像这里所展示的那样。

         </p></td></tr>
-</table></div>
-
-<div class="note"><table border="0" summary="Note">
-<tr>
+</tbody></table></div>
+
+<div class="note"><table summary="Note" border="0">
+<tbody><tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/html/images/note.png"></td>
 <th align="left">Note</th>
 </tr>
@@ -766,12 +721,12 @@
                        解释见<a href="../../../../v2/faq.html#c1204" 
target="_top">FAQ</a>。

         </p></td></tr>
-</table></div>
+</tbody></table></div>
 </div>
 </div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &copy; 2002-2005 Joel
+<td align="right"><div class="copyright-footer">Copyright © 2002-2005 Joel
       de Guzman, David Abrahams<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">
@@ -783,10 +738,9 @@

 </div></td>

-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="exception.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a>
 </div>
-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/python/doc/v2/object.html       Mon Apr 13 21:23:05 2009
+++ /trunk/libs/python/doc/v2/object.html       Sat Sep 12 00:52:19 2009
@@ -1,25 +1,20 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<!-- Copyright David Abrahams 2006. Distributed under the Boost -->
-<!-- Software License, Version 1.0. (See accompanying -->
-<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
-<html>
-  <head>
-    <meta name="generator" content=
-    "HTML Tidy for Windows (vers 1st August 2002), see www.w3.org">
+<html><head><!-- Copyright David Abrahams 2006. Distributed under the Boost --><!-- Software License, Version 1.0. (See accompanying --><!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> + <meta name="generator" content="HTML Tidy for Windows (vers 1st August 2002), see www.w3.org">
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <link rel="stylesheet" type="text/css" href="../boost.css">

-    <title>Boost.Python - &lt;boost/python/object.hpp&gt;</title>
-  </head>
+    <title>Boost.Python - &lt;boost/python/object.hpp&gt;</title></head>
+
+
+
+

   <body>
-    <table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
-    "header">
-      <tr>
+ <table summary="header" border="0" cellpadding="7" cellspacing="0" width="100%">
+      <tbody><tr>
         <td valign="top" width="300">
-          <h3><a href="../../../../index.htm"><img height="86" width="277"
-          alt="C++ Boost" src="../../../../boost.png" border="0"></a></h3>
+ <h3><a href="../../../../index.htm"><img alt="C++ Boost" src="../../../../boost.png" border="0" height="86" width="277"></a></h3>
         </td>

         <td valign="top">
@@ -28,7 +23,7 @@
           <h2 align="center">Header &lt;boost/python/object.hpp&gt;</h2>
         </td>
       </tr>
-    </table>
+    </tbody></table>
     <hr>

     <h2>Contents</h2>
@@ -227,27 +222,18 @@
     <h2><a name="types"></a>Types</h2>

     <p><a name="slice_nil-spec"></a></p>
-<pre>
-class slice_nil;
-static const _ = slice_nil();
-</pre>
+<pre>class slice_nil;<br>static const _ = slice_nil();<br></pre>
     A type that can be used to get the effect of leaving out an index in a
     Python slice expression:

     <p>一个类型,
     可用于达到在Python分片表达式中省略索引的效果。
     </p>
-<pre>
-&gt;&gt;&gt; x[:-1]
-&gt;&gt;&gt; x[::-1]
-</pre>
+<pre>&gt;&gt;&gt; x[:-1]<br>&gt;&gt;&gt; x[::-1]<br></pre>
     C++ equivalent:

     <p>等效的C++:</p>
-<pre>
-x.slice(_,-1)
-x[slice(_,_,-1)]
-</pre>
+<pre>x.slice(_,-1)<br>x[slice(_,_,-1)]<br></pre>

     <h2><a name="classes"></a>Classes</h2>
     <!-- begin -->
@@ -264,26 +250,14 @@

     <h4><a name="const_attribute_policies-spec-synopsis"></a>Class
     <code>const_attribute_policies</code> synopsis</h4>
-<pre>
-namespace boost { namespace python { namespace api
-{
-  struct const_attribute_policies
-  {
-      typedef char const* key_type;
-      static object get(object const&amp; target, char const* key);
-  };
-}}}
-</pre>
+<pre>namespace boost { namespace python { namespace api<br>{<br> struct const_attribute_policies<br> {<br> typedef char const* key_type;<br> static object get(object const&amp; target, char const* key);<br> };<br>}}}<br></pre>

     <h4><a name="const_attribute_policies-spec-statics"></a>Class
     <code>const_attribute_policies</code> static functions</h4>
-<pre>
-static object get(object const&amp; target, char const* key);
-</pre>
+<pre>static object get(object const&amp; target, char const* key);<br></pre>

     <dl class="function-semantics">
-      <dt><b>Requires:</b> <code>key</code> is an <a href=
-      "definitions.html#ntbs">ntbs</a>.</dt>
+ <dt><b>Requires:</b> <code>key</code> is an <a href="definitions.html#ntbs">ntbs</a>.</dt>

<dt><b>Effects:</b> accesses the attribute of <code>target</code> named
       by <code>key</code>.</dt>
@@ -291,14 +265,12 @@
       <dt><b>Returns:</b> An <code>object</code> managing the result of the
       attribute access.</dt>

-      <dt><b>Throws:</b> <code><a href=
- "errors.html#error_already_set-spec">error_already_set</a></code> if a + <dt><b>Throws:</b> <code><a href="errors.html#error_already_set-spec">error_already_set</a></code> if a
       Python exception is raised.</dt>
     </dl>

     <dl class="function-semantics">
-      <dt><b>要求:</b> <code>key</code> 是个 <a href=
-      "definitions.html#ntbs">ntbs</a>。</dt>
+ <dt><b>要求:</b> <code>key</code> 是个 <a href="definitions.html#ntbs">ntbs</a>。</dt>

       <dt><b>效果:</b> 访问 <code>target</code> 名字为
       <code>key</code> 的属性。</dt>
@@ -307,8 +279,7 @@
        <code>object</code>。
       </dt>

-      <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href=
-      "errors.html#error_already_set-spec">error_already_set</a></code>。
+ <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href="errors.html#error_already_set-spec">error_already_set</a></code>。
       </dt>
     </dl>

@@ -324,72 +295,51 @@

     <h4><a name="attribute_policies-spec-synopsis"></a>Class
     <code>attribute_policies</code> synopsis</h4>
-<pre>
-namespace boost { namespace python { namespace api
-{
-  struct attribute_policies : const_attribute_policies
-  {
- static object const&amp; set(object const&amp; target, char const* key, object const&amp; value);
-      static void del(object const&amp;target, char const* key);
-  };
-}}}
-</pre>
+<pre>namespace boost { namespace python { namespace api<br>{<br> struct attribute_policies : const_attribute_policies<br> {<br> static object const&amp; set(object const&amp; target, char const* key, object const&amp; value);<br> static void del(object const&amp;target, char const* key);<br> };<br>}}}<br></pre>

     <h4><a name="attribute_policies-spec-statics"></a>Class
     <code>attribute_policies</code> static functions</h4>
-<pre>
-static object const&amp; set(object const&amp; target, char const* key, object const&amp; value);
-</pre>
+<pre>static object const&amp; set(object const&amp; target, char const* key, object const&amp; value);<br></pre>

     <dl class="function-semantics">
-      <dt><b>Requires:</b> <code>key</code> is an <a href=
-      "definitions.html#ntbs">ntbs</a>.</dt>
+ <dt><b>Requires:</b> <code>key</code> is an <a href="definitions.html#ntbs">ntbs</a>.</dt>

<dt><b>Effects:</b> sets the attribute of <code>target</code> named by
       <code>key</code> to <code>value</code>.</dt>

-      <dt><b>Throws:</b> <code><a href=
- "errors.html#error_already_set-spec">error_already_set</a></code> if a + <dt><b>Throws:</b> <code><a href="errors.html#error_already_set-spec">error_already_set</a></code> if a
       Python exception is raised.</dt>
     </dl>

     <dl class="function-semantics">
-      <dt><b>要求:</b> <code>key</code> 是个 <a href=
-      "definitions.html#ntbs">ntbs</a>。</dt>
+ <dt><b>要求:</b> <code>key</code> 是个 <a href="definitions.html#ntbs">ntbs</a>。</dt>

       <dt><b>效果:</b> 将 <code>target</code> 名字为
       <code>key</code> 的属性设置为 <code>value</code>。</dt>

-      <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href=
-      "errors.html#error_already_set-spec">error_already_set</a></code>。
+ <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href="errors.html#error_already_set-spec">error_already_set</a></code>。
       </dt>
     </dl>

-<pre>
-static void del(object const&amp;target, char const* key);
-</pre>
+<pre>static void del(object const&amp;target, char const* key);<br></pre>

     <dl class="function-semantics">
-      <dt><b>Requires:</b> <code>key</code> is an <a href=
-      "definitions.html#ntbs">ntbs</a>.</dt>
+ <dt><b>Requires:</b> <code>key</code> is an <a href="definitions.html#ntbs">ntbs</a>.</dt>

<dt><b>Effects:</b> deletes the attribute of <code>target</code> named
       by <code>key</code>.</dt>

-      <dt><b>Throws:</b> <code><a href=
- "errors.html#error_already_set-spec">error_already_set</a></code> if a + <dt><b>Throws:</b> <code><a href="errors.html#error_already_set-spec">error_already_set</a></code> if a
       Python exception is raised.</dt>
     </dl>

     <dl class="function-semantics">
-      <dt><b>要求:</b> <code>key</code> 是个 <a href=
-      "definitions.html#ntbs">ntbs</a>.</dt>
+ <dt><b>要求:</b> <code>key</code> 是个 <a href="definitions.html#ntbs">ntbs</a>.</dt>

       <dt><b>效果:</b> 删除 <code>target</code> 名字为
       <code>key</code> 的属性。</dt>

-      <dt><b>抛出:</b> 如果引发Python异常,则抛出 <code><a href=
-      "errors.html#error_already_set-spec">error_already_set</a></code>。
+ <dt><b>抛出:</b> 如果引发Python异常,则抛出 <code><a href="errors.html#error_already_set-spec">error_already_set</a></code>。
       </dt>
     </dl>
     <!-- end -->
@@ -409,22 +359,11 @@

     <h4><a name="const_item_policies-spec-synopsis"></a>Class
     <code>const_item_policies</code> synopsis</h4>
-<pre>
-namespace boost { namespace python { namespace api
-{
-  struct const_item_policies
-  {
-      typedef object key_type;
-      static object get(object const&amp; target, object const&amp; key);
-  };
-}}}
-</pre>
+<pre>namespace boost { namespace python { namespace api<br>{<br> struct const_item_policies<br> {<br> typedef object key_type;<br> static object get(object const&amp; target, object const&amp; key);<br> };<br>}}}<br></pre>

     <h4><a name="const_item_policies-spec-statics"></a>Class
     <code>const_item_policies</code> static functions</h4>
-<pre>
-static object get(object const&amp; target, object const&amp; key);
-</pre>
+<pre>static object get(object const&amp; target, object const&amp; key);<br></pre>

     <dl class="function-semantics">
<dt><b>Effects:</b> accesses the item of <code>target</code> specified
@@ -433,8 +372,7 @@
       <dt><b>Returns:</b> An <code>object</code> managing the result of the
       item access.</dt>

-      <dt><b>Throws:</b> <code><a href=
- "errors.html#error_already_set-spec">error_already_set</a></code> if a + <dt><b>Throws:</b> <code><a href="errors.html#error_already_set-spec">error_already_set</a></code> if a
       Python exception is raised.</dt>
     </dl>

@@ -446,8 +384,7 @@
       <dt><b>返回:</b> 一个管理条目访问结果的 <code>object</code>。
       </dt>

-      <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href=
-      "errors.html#error_already_set-spec">error_already_set</a></code>。
+ <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href="errors.html#error_already_set-spec">error_already_set</a></code>。
       </dt>
     </dl>

@@ -465,29 +402,17 @@

     <h4><a name="item_policies-spec-synopsis"></a>Class
     <code>item_policies</code> synopsis</h4>
-<pre>
-namespace boost { namespace python { namespace api
-{
-  struct item_policies : const_item_policies
-  {
- static object const&amp; set(object const&amp; target, object const&amp; key, object const&amp; value);
-      static void del(object const&amp; target, object const&amp; key);
-  };
-}}}
-</pre>
+<pre>namespace boost { namespace python { namespace api<br>{<br> struct item_policies : const_item_policies<br> {<br> static object const&amp; set(object const&amp; target, object const&amp; key, object const&amp; value);<br> static void del(object const&amp; target, object const&amp; key);<br> };<br>}}}<br></pre>

     <h4><a name="item_policies-spec-statics"></a>Class
     <code>item_policies</code> static functions</h4>
-<pre>
-static object const&amp; set(object const&amp; target, object const&amp; key, object const&amp; value);
-</pre>
+<pre>static object const&amp; set(object const&amp; target, object const&amp; key, object const&amp; value);<br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b> sets the item of <code>target</code> specified by
       <code>key</code> to <code>value</code>.</dt>

-      <dt><b>Throws:</b> <code><a href=
- "errors.html#error_already_set-spec">error_already_set</a></code> if a + <dt><b>Throws:</b> <code><a href="errors.html#error_already_set-spec">error_already_set</a></code> if a
       Python exception is raised.</dt>
     </dl>

@@ -495,21 +420,17 @@
       <dt><b>效果:</b> 将 <code>target</code> 由
       <code>key</code> 指定的条目设置为 <code>value</code>。</dt>

-      <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href=
-      "errors.html#error_already_set-spec">error_already_set</a></code>。
+ <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href="errors.html#error_already_set-spec">error_already_set</a></code>。
       </dt>
     </dl>

-<pre>
-static void del(object const&amp; target, object const&amp; key);
-</pre>
+<pre>static void del(object const&amp; target, object const&amp; key);<br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b> deletes the item of <code>target</code> specified
       by <code>key</code>.</dt>

-      <dt><b>Throws:</b> <code><a href=
- "errors.html#error_already_set-spec">error_already_set</a></code> if a + <dt><b>Throws:</b> <code><a href="errors.html#error_already_set-spec">error_already_set</a></code> if a
       Python exception is raised.</dt>
     </dl>

@@ -517,8 +438,7 @@
       <dt><b>效果:</b> 删除 <code>target</code> 由
       <code>key</code> 指定的条目。</dt>

-      <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href=
-      "errors.html#error_already_set-spec">error_already_set</a></code>。
+ <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href="errors.html#error_already_set-spec">error_already_set</a></code>。
       </dt>
     </dl>

@@ -541,22 +461,11 @@

     <h4><a name="const_slice_policies-spec-synopsis"></a>Class
     <code>const_slice_policies</code> synopsis</h4>
-<pre>
-namespace boost { namespace python { namespace api
-{
-  struct const_slice_policies
-  {
-      typedef std::pair&lt;handle&lt;&gt;, handle&lt;&gt; &gt; key_type;
-      static object get(object const&amp; target, key_type const&amp; key);
-  };
-}}}
-</pre>
+<pre>namespace boost { namespace python { namespace api<br>{<br> struct const_slice_policies<br> {<br> typedef std::pair&lt;handle&lt;&gt;, handle&lt;&gt; &gt; key_type;<br> static object get(object const&amp; target, key_type const&amp; key);<br> };<br>}}}<br></pre>

     <h4><a name="const_slice_policies-spec-statics"></a>Class
     <code>const_slice_policies</code> static functions</h4>
-<pre>
-static object get(object const&amp; target, key_type const&amp; key);
-</pre>
+<pre>static object get(object const&amp; target, key_type const&amp; key);<br></pre>

     <dl class="function-semantics">
<dt><b>Effects:</b> accesses the slice of <code>target</code> specified
@@ -565,8 +474,7 @@
       <dt><b>Returns:</b> An <code>object</code> managing the result of the
       slice access.</dt>

-      <dt><b>Throws:</b> <code><a href=
- "errors.html#error_already_set-spec">error_already_set</a></code> if a + <dt><b>Throws:</b> <code><a href="errors.html#error_already_set-spec">error_already_set</a></code> if a
       Python exception is raised.</dt>
     </dl>

@@ -577,8 +485,7 @@
       <dt><b>返回:</b> 一个管理分片访问结果的 <code>object</code>。
       </dt>

-      <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href=
-      "errors.html#error_already_set-spec">error_already_set</a></code>。
+ <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href="errors.html#error_already_set-spec">error_already_set</a></code>。
       </dt>
     </dl>

@@ -594,29 +501,17 @@

     <h4><a name="slice_policies-spec-synopsis"></a>Class
     <code>slice_policies</code> synopsis</h4>
-<pre>
-namespace boost { namespace python { namespace api
-{
-  struct slice_policies : const_slice_policies
-  {
- static object const&amp; set(object const&amp; target, key_type const&amp; key, object const&amp; value);
-      static void del(object const&amp; target, key_type const&amp; key);
-  };
-}}}
-</pre>
+<pre>namespace boost { namespace python { namespace api<br>{<br> struct slice_policies : const_slice_policies<br> {<br> static object const&amp; set(object const&amp; target, key_type const&amp; key, object const&amp; value);<br> static void del(object const&amp; target, key_type const&amp; key);<br> };<br>}}}<br></pre>

     <h4><a name="slice_policies-spec-statics"></a>Class
     <code>slice_policies</code> static functions</h4>
-<pre>
-static object const&amp; set(object const&amp; target, key_type const&amp; key, object const&amp; value);
-</pre>
+<pre>static object const&amp; set(object const&amp; target, key_type const&amp; key, object const&amp; value);<br></pre>

     <dl class="function-semantics">
<dt><b>Effects:</b> sets the slice of <code>target</code> specified by
       <code>key</code> to <code>value</code>.</dt>

-      <dt><b>Throws:</b> <code><a href=
- "errors.html#error_already_set-spec">error_already_set</a></code> if a + <dt><b>Throws:</b> <code><a href="errors.html#error_already_set-spec">error_already_set</a></code> if a
       Python exception is raised.</dt>
     </dl>

@@ -624,21 +519,17 @@
       <dt><b>效果:</b> 将 <code>target</code> 由
       <code>key</code> 指定的分片设置为 <code>value</code>。</dt>

-      <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href=
-      "errors.html#error_already_set-spec">error_already_set</a></code>。
+ <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href="errors.html#error_already_set-spec">error_already_set</a></code>。
       </dt>
     </dl>

-<pre>
-static void del(object const&amp; target, key_type const&amp; key);
-</pre>
+<pre>static void del(object const&amp; target, key_type const&amp; key);<br></pre>

     <dl class="function-semantics">
<dt><b>Effects:</b> deletes the slice of <code>target</code> specified
       by <code>key</code>.</dt>

-      <dt><b>Throws:</b> <code><a href=
- "errors.html#error_already_set-spec">error_already_set</a></code> if a + <dt><b>Throws:</b> <code><a href="errors.html#error_already_set-spec">error_already_set</a></code> if a
       Python exception is raised.</dt>
     </dl>

@@ -646,8 +537,7 @@
       <dt><b>效果:</b> 删除 <code>target</code> 由
       <code>key</code> 指定的分片。</dt>

-      <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href=
-      "errors.html#error_already_set-spec">error_already_set</a></code>。
+ <dt><b>抛异常:</b> 如果引发Python异常,则抛出 <code><a href="errors.html#error_already_set-spec">error_already_set</a></code>。
       </dt>
     </dl>

@@ -678,75 +568,26 @@

     <h4><a name="object_operators-spec-synopsis"></a>Class template
     <code>object_operators</code> synopsis</h4>
-<pre>
-namespace boost { namespace python { namespace api
-{
-  template &lt;class U&gt;
-  class object_operators
-  {
-   public:
-      // function call
-      //
-      object operator()() const;
-
-      template &lt;class A0&gt;
-      object operator()(A0 const&amp;) const;
-      template &lt;class A0, class A1&gt;
-      object operator()(A0 const&amp;, A1 const&amp;) const;
-      ...
-      template &lt;class A0, class A1,...class An&gt;
- object operator()(A0 const&amp;, A1 const&amp;,...An const&amp;) const;
-
-      // truth value testing
-      //
-      typedef unspecified bool_type;
-      operator bool_type() const;
-
-      // Attribute access
-      //
-      proxy&lt;const_object_attribute&gt; attr(char const*) const;
-      proxy&lt;object_attribute&gt; attr(char const*);
-
-      // item access
-      //
-      template &lt;class T&gt;
-      proxy&lt;const_object_item&gt; operator[](T const&amp; key) const;
-
-      template &lt;class T&gt;
-      proxy&lt;object_item&gt; operator[](T const&amp; key);
-
-      // slicing
-      //
-      template &lt;class T, class V&gt;
- proxy&lt;const_object_slice&gt; slice(T const&amp; start, V const&amp; end) const
-
-      template &lt;class T, class V&gt;
- proxy&lt;object_slice&gt; slice(T const&amp; start, V const&amp; end);
-  };
-}}}
-</pre>
+<pre>namespace boost { namespace python { namespace api<br>{<br> template &lt;class U&gt;<br> class object_operators<br> {<br> public:<br> // function call<br> //<br> object operator()() const;<br><br> template &lt;class A0&gt;<br> object operator()(A0 const&amp;) const;<br> template &lt;class A0, class A1&gt;<br> object operator()(A0 const&amp;, A1 const&amp;) const;<br> ...<br> template &lt;class A0, class A1,...class An&gt;<br> object operator()(A0 const&amp;, A1 const&amp;,...An const&amp;) const;<br><br> detail::args_proxy operator* () const; <br> object operator()(detail::args_proxy const &amp;args) const; <br> object operator()(detail::args_proxy const &amp;args, <br> detail::kwds_proxy const &amp;kwds) const; <br><br> // truth value testing<br> //<br> typedef unspecified bool_type;<br> operator bool_type() const;<br><br> // Attribute access<br> //<br> proxy&lt;const_object_attribute&gt; attr(char const*) const;<br> proxy&lt;object_attribute&gt; attr(char const*);<br><br> // item access<br> //<br> template &lt;class T&gt;<br> proxy&lt;const_object_item&gt; operator[](T const&amp; key) const;<br> <br> template &lt;class T&gt;<br> proxy&lt;object_item&gt; operator[](T const&amp; key);<br><br> // slicing<br> //<br> template &lt;class T, class V&gt;<br> proxy&lt;const_object_slice&gt; slice(T const&amp; start, V const&amp; end) const<br> <br> template &lt;class T, class V&gt;<br> proxy&lt;object_slice&gt; slice(T const&amp; start, V const&amp; end);<br> };<br>}}}<br></pre>

     <h4><a name="object_operators-spec-observers"></a>Class template
     <code>object_operators</code> observer functions</h4>
-<pre>
-object operator()() const;
-template &lt;class A0&gt;
-object operator()(A0 const&amp;) const;
-template &lt;class A0, class A1&gt;
-object operator()(A0 const&amp;, A1 const&amp;) const;
-...
-template &lt;class A0, class A1,...class An&gt;
-object operator()(A0 const&amp; a1, A1 const&amp; a2,...An const&amp; aN) const;
-</pre>
+<pre>object operator()() const;<br>template &lt;class A0&gt;<br>object operator()(A0 const&amp;) const;<br>template &lt;class A0, class A1&gt;<br>object operator()(A0 const&amp;, A1 const&amp;) const;<br>...<br>template &lt;class A0, class A1,...class An&gt;<br>object operator()(A0 const&amp; a1, A1 const&amp; a2,...An const&amp; aN) const;<br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b>
       call&lt;object&gt;(object(*static_cast&lt;U*&gt;(this)).ptr(), a1,
-      a2,...aN)</dt>
+      a2,...aN)
+</dt></dl><pre>object operator()(detail::args_proxy const &amp;args) const; <br></pre> +<dl class="function-semantics"><dt><dt><b>Effects:</b> call object with arguments given by the tuple
+<VARNAME>args</VARNAME></dt><b>效果:</b>以元组
+<VARNAME>args</VARNAME> 给定的实参调用&nbsp;object<VARNAME></VARNAME> </dt></dl><pre>object operator()(detail::args_proxy const &amp;args, <br> detail::kwds_proxy const &amp;kwds) const; <br></pre> +<dl class="function-semantics"><dt><dt><b>Effects:</b> call object with arguments given by the tuple
+<VARNAME>args</VARNAME>, and named arguments given by the dictionary
+<VARNAME>kwds</VARNAME></dt><b>效果:</b>以元组
+<VARNAME>args</VARNAME> 给定的实参以及字典&nbsp;<VARNAME>kwds</VARNAME> 给 定的命名实参调用&nbsp;object&nbsp;<VARNAME></VARNAME> </dt></dl><dl class="function-semantics">
     </dl>
-<pre>
-operator bool_type() const;
-</pre>
+<pre>operator bool_type() const;<br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b> Tests truth value of <code>*this</code>.</dt>
@@ -764,14 +605,10 @@
       a2,...aN)</dt>
     </dl>

-<pre>
-proxy&lt;const_object_attribute&gt; attr(char const* name) const;
-proxy&lt;object_attribute&gt; attr(char const* name);
-</pre>
+<pre>proxy&lt;const_object_attribute&gt; attr(char const* name) const;<br>proxy&lt;object_attribute&gt; attr(char const* name);<br></pre>

     <dl class="function-semantics">
-      <dt><b>Requires:</b> name is an <a href=
-      "definitions.html#ntbs">ntbs</a>.</dt>
+ <dt><b>Requires:</b> name is an <a href="definitions.html#ntbs">ntbs</a>.</dt>

       <dt><b>Effects:</b> accesses the named attribute of
       <code>*this</code>.</dt>
@@ -782,8 +619,7 @@
     </dl>

     <dl class="function-semantics">
-      <dt><b>要求:</b> name 是个 <a href=
-      "definitions.html#ntbs">ntbs</a>。</dt>
+ <dt><b>要求:</b> name 是个 <a href="definitions.html#ntbs">ntbs</a>。</dt>

       <dt><b>效果:</b> 访问 <code>*this</code> 名为 name 的属性。
       </dt>
@@ -794,12 +630,7 @@
       。</dt>
     </dl>

-<pre>
-template &lt;class T&gt;
-proxy&lt;const_object_item&gt; operator[](T const&amp; key) const;
-template &lt;class T&gt;
-proxy&lt;object_item&gt; operator[](T const&amp; key);
-</pre>
+<pre>template &lt;class T&gt;<br>proxy&lt;const_object_item&gt; operator[](T const&amp; key) const;<br>template &lt;class T&gt;<br>proxy&lt;object_item&gt; operator[](T const&amp; key);<br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b> accesses the item of <code>*this</code> indicated
@@ -820,12 +651,7 @@
       </dt>
     </dl>

-<pre>
-template &lt;class T, class V&gt;
-proxy&lt;const_object_slice&gt; slice(T const&amp; start; start, V const&amp; finish) const
-template &lt;class T, class V&gt;
-proxy&lt;object_slice&gt; slice(T const&amp; start; start, V const&amp; finish);
-</pre>
+<pre>template &lt;class T, class V&gt;<br>proxy&lt;const_object_slice&gt; slice(T const&amp; start; start, V const&amp; finish) const<br>template &lt;class T, class V&gt;<br>proxy&lt;object_slice&gt; slice(T const&amp; start; start, V const&amp; finish);<br></pre>

     <dl class="function-semantics">
<dt><b>Effects:</b> accesses the slice of <code>*this</code> indicated
@@ -858,8 +684,7 @@
     Python variable as possible. Thus expressions you'd expect to work
     in Python should generally work in the same way from C++. Most of
     <code>object</code>'s interface is provided by its base class
-    <code><a
- href="#object_operators-spec">object_operators</a>&lt;object&gt;</code>, + <code><a href="#object_operators-spec">object_operators</a>&lt;object&gt;</code>,
     and the <a href="#functions">free functions</a> defined in this
     header.
 </p>
@@ -870,8 +695,7 @@
     这种表达式通常会以像在Python中一样的方式运行于C++。

     <code>object</code> 的大部分接口是由其基类
-    <code><a
- href="#object_operators-spec">object_operators</a>&lt;object&gt;</code>, + <code><a href="#object_operators-spec">object_operators</a>&lt;object&gt;</code>,
     及一些<a href="#functions">自由函数</a>提供的,
     它们都定义于这个头文件中。

@@ -879,33 +703,11 @@

     <h4><a name="object-spec-synopsis"></a>Class <code>object</code>
     synopsis</h4>
-<pre>
-namespace boost { namespace python { namespace api
-{
-  class object : public object_operators&lt;object&gt;
-  {
-   public:
-      object();
-
-      object(object const&amp;);
-
-      template &lt;class T&gt;
-      explicit object(T const&amp; x);
-
-      ~object();
-
-      object&amp; operator=(object const&amp;);
-
-      PyObject* ptr() const;
-  };
-}}}
-</pre>
+<pre>namespace boost { namespace python { namespace api<br>{<br> class object : public object_operators&lt;object&gt;<br> {<br> public:<br> object();<br><br> object(object const&amp;);<br> <br> template &lt;class T&gt;<br> explicit object(T const&amp; x);<br><br> ~object();<br><br> object&amp; operator=(object const&amp;); <br><br> PyObject* ptr() const;<br> };<br>}}}<br></pre>

     <h4><a name="object-spec-ctors"></a>Class <code>object</code>
     constructors and destructor</h4>
-<pre>
-object();
-</pre>
+<pre>object();<br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b> Constructs an object managing a reference to the
@@ -921,10 +723,7 @@
       <dt><b>抛异常:</b> 无。</dt>
     </dl>

-<pre>
-template &lt;class T&gt;
-explicit object(T const&amp; x);
-</pre>
+<pre>template &lt;class T&gt;<br>explicit object(T const&amp; x);<br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b> converts <code>x</code> to python and manages a
@@ -945,9 +744,7 @@
       <code>TypeError</code> 异常。</dt>
     </dl>

-<pre>
-~object();
-</pre>
+<pre>~object();<br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b> decrements the reference count of the
@@ -961,9 +758,7 @@

     <h4><a name="object-spec-modifiers"></a>Class <code>object</code>
     modifiers</h4>
-<pre>
-object&amp; operator=(object const&amp; rhs);
-</pre>
+<pre>object&amp; operator=(object const&amp; rhs); <br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b> increments the reference count of the object held
@@ -978,9 +773,7 @@

     <h4><a name="object-spec-observers"></a>Class <code>object</code>
     observers</h4>
-<pre>
-PyObject* ptr() const;
-</pre>
+<pre>PyObject* ptr() const;<br></pre>

     <dl class="function-semantics">
       <dt><b>Returns:</b> a pointer to the internally-held Python
@@ -1010,48 +803,11 @@

     <h4><a name="proxy-spec-synopsis"></a>Class template <code>proxy</code>
     synopsis</h4>
-<pre>
-namespace boost { namespace python { namespace api
-{
-  template &lt;class Policies&gt;
-  class proxy : public object_operators&lt;proxy&lt;Policies&gt; &gt;
-  {
-   public:
-      operator object() const;
-
-      proxy const&amp; operator=(proxy const&amp;) const;
-      template &lt;class T&gt;
-      inline proxy const&amp; operator=(T const&amp; rhs) const;
-
-      void del() const;
-
-      template &lt;class R&gt;
-      proxy operator+=(R const&amp; rhs);
-      template &lt;class R&gt;
-      proxy operator-=(R const&amp; rhs);
-      template &lt;class R&gt;
-      proxy operator*=(R const&amp; rhs);
-      template &lt;class R&gt;
-      proxy operator/=(R const&amp; rhs);
-      template &lt;class R&gt;
-      proxy operator%=(R const&amp; rhs);
-      template &lt;class R&gt;
-      proxy operator&lt;&lt;=(R const&amp; rhs);
-      template &lt;class R&gt;
-      proxy operator&gt;&gt;=(R const&amp; rhs);
-      template &lt;class R&gt;
-      proxy operator&amp;=(R const&amp; rhs);
-      template &lt;class R&gt;
-      proxy operator|=(R const&amp; rhs);
-  };
-}}}
-</pre>
+<pre>namespace boost { namespace python { namespace api<br>{<br> template &lt;class Policies&gt;<br> class proxy : public object_operators&lt;proxy&lt;Policies&gt; &gt;<br> {<br> public:<br> operator object() const;<br><br> proxy const&amp; operator=(proxy const&amp;) const;<br> template &lt;class T&gt;<br> inline proxy const&amp; operator=(T const&amp; rhs) const;<br> <br> void del() const;<br><br> template &lt;class R&gt;<br> proxy operator+=(R const&amp; rhs);<br> template &lt;class R&gt;<br> proxy operator-=(R const&amp; rhs);<br> template &lt;class R&gt;<br> proxy operator*=(R const&amp; rhs);<br> template &lt;class R&gt;<br> proxy operator/=(R const&amp; rhs);<br> template &lt;class R&gt;<br> proxy operator%=(R const&amp; rhs);<br> template &lt;class R&gt;<br> proxy operator&lt;&lt;=(R const&amp; rhs);<br> template &lt;class R&gt;<br> proxy operator&gt;&gt;=(R const&amp; rhs);<br> template &lt;class R&gt;<br> proxy operator&amp;=(R const&amp; rhs);<br> template &lt;class R&gt;<br> proxy operator|=(R const&amp; rhs);<br> };<br>}}}<br></pre>

<h4><a name="proxy-spec-observers"></a>Class template <code>proxy</code>
     observer functions</h4>
-<pre>
-operator object() const;
-</pre>
+<pre>operator object() const;<br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b> applies
@@ -1068,11 +824,7 @@

<h4><a name="proxy-spec-modifiers"></a>Class template <code>proxy</code>
     modifier functions</h4>
-<pre>
-proxy const&amp; operator=(proxy const&amp; rhs) const;
-template &lt;class T&gt;
-inline proxy const&amp; operator=(T const&amp; rhs) const;
-</pre>
+<pre>proxy const&amp; operator=(proxy const&amp; rhs) const;<br>template &lt;class T&gt;<br>inline proxy const&amp; operator=(T const&amp; rhs) const;<br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b>
@@ -1089,26 +841,7 @@
       </dt>
     </dl>

-<pre>
-template &lt;class R&gt;
-proxy operator+=(R const&amp; rhs);
-template &lt;class R&gt;
-proxy operator-=(R const&amp; rhs);
-template &lt;class R&gt;
-proxy operator*=(R const&amp; rhs);
-template &lt;class R&gt;
-proxy operator/=(R const&amp; rhs);
-template &lt;class R&gt;
-proxy operator%=(R const&amp; rhs);
-template &lt;class R&gt;
-proxy operator&lt;&lt;=(R const&amp; rhs);
-template &lt;class R&gt;
-proxy operator&gt;&gt;=(R const&amp; rhs);
-template &lt;class R&gt;
-proxy operator&amp;=(R const&amp; rhs);
-template &lt;class R&gt;
-proxy operator|=(R const&amp; rhs);
-</pre>
+<pre>template &lt;class R&gt;<br>proxy operator+=(R const&amp; rhs);<br>template &lt;class R&gt;<br>proxy operator-=(R const&amp; rhs);<br>template &lt;class R&gt;<br>proxy operator*=(R const&amp; rhs);<br>template &lt;class R&gt;<br>proxy operator/=(R const&amp; rhs);<br>template &lt;class R&gt;<br>proxy operator%=(R const&amp; rhs);<br>template &lt;class R&gt;<br>proxy operator&lt;&lt;=(R const&amp; rhs);<br>template &lt;class R&gt;<br>proxy operator&gt;&gt;=(R const&amp; rhs);<br>template &lt;class R&gt;<br>proxy operator&amp;=(R const&amp; rhs);<br>template &lt;class R&gt;<br>proxy operator|=(R const&amp; rhs);<br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b> for a given operator@=,
@@ -1122,9 +855,7 @@
       <dt><b>返回:</b> <code>*this</code></dt>
     </dl>

-<pre>
-void del() const;
-</pre>
+<pre>void del() const;<br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b>
@@ -1143,16 +874,12 @@
     <!-- -->

     <h2><a name="functions"></a>Functions</h2>
-<pre>
-<a name="del-spec"></a>template &lt;class T&gt;
-void del(proxy&lt;T&gt; const&amp; x);
-</pre>
+<pre><a name="del-spec"></a>template &lt;class T&gt;<br>void del(proxy&lt;T&gt; const&amp; x);<br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b> x.del()</dt>
     </dl>
-<pre>
-<a name="comparisons-spec"></a>
+<pre><a name="comparisons-spec"></a>
template&lt;class L,class R&gt; object operator&gt;(L const&amp;l,R const&amp;r); template&lt;class L,class R&gt; object operator&gt;=(L const&amp;l,R const&amp;r); template&lt;class L,class R&gt; object operator&lt;(L const&amp;l,R const&amp;r);
@@ -1174,8 +901,7 @@
       </dt>
     </dl>

-<pre>
-<a name="binary-spec"></a>
+<pre><a name="binary-spec"></a>
template&lt;class L,class R&gt; object operator+(L const&amp;l,R const&amp;r); template&lt;class L,class R&gt; object operator-(L const&amp;l,R const&amp;r); template&lt;class L,class R&gt; object operator*(L const&amp;l,R const&amp;r);
@@ -1200,8 +926,7 @@
       在Python中应用运算符的结果。</dt>
     </dl>

-<pre>
-<a name="assignment-spec"></a>
+<pre><a name="assignment-spec"></a>
 template&lt;class R&gt; object&amp; operator+=(object&amp;l,R const&amp;r);
 template&lt;class R&gt; object&amp; operator-=(object&amp;l,R const&amp;r);
 template&lt;class R&gt; object&amp; operator*=(object&amp;l,R const&amp;r);
@@ -1232,9 +957,7 @@
     </dl>


-<pre>
-inline long len(object const&amp; obj);
-</pre>
+<pre>inline long len(object const&amp; obj);<br></pre>

     <dl class="function-semantics">
       <dt><b>Effects:</b> PyObject_Length(obj.ptr()) </dt>
@@ -1243,30 +966,14 @@

 <h2><a name="examples"></a>Example</h2>
     Python code:
-<pre>
-def sum_items(seq):
-   result = 0
-   for x in seq:
-      result += x
-   return result
-</pre>
+<pre>def sum_items(seq):<br> result = 0<br> for x in seq:<br> result += x<br> return result<br></pre>
     C++ version:
-<pre>
-object sum_items(object seq)
-{
-   object result = object(0);
-   for (int i = 0; i &lt; len(seq); ++i)
-      result += seq[i];
-   return result;
-}
-</pre>
+<pre>object sum_items(object seq)<br>{<br> object result = object(0);<br> for (int i = 0; i &lt; len(seq); ++i)<br> result += seq[i];<br> return result;<br>}<br></pre>
     <p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
   13 January, 2006
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
     </p>

-    <p><i>&copy; Copyright <a href=
- "http://www.boost.org/people/dave_abrahams.htm";>Dave Abrahams</a> 2006.</i></p>
-  </body>
-</html>
+ <p><i>© Copyright <a href="http://www.boost.org/people/dave_abrahams.htm";>Dave Abrahams</a> 2006.</i></p>
+  </body></html>
=======================================
--- /trunk/libs/random/random-generators.html   Sun Jan 25 18:51:10 2009
+++ /trunk/libs/random/random-generators.html   Sat Sep 12 00:52:19 2009
@@ -1,1020 +1,535 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-
-  <title>Boost 随机数库:生成器</title>
+<html><head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Boost 随机数库:生成器</title>
+
 </head>

-<body bgcolor="#FFFFFF" text="#000000">
-  <h1>随机数库:生成器</h2>
-
-  <ul>
-    <li><a href="#intro">简介</a></li>
-
-    <li><a href="#synopsis">概览</a></li>
-
-    <li><a href="#const_mod"><code>random::const_mod</code> 类模板</a></li>
-
- <li><a href="#linear_congruential"><code>random::linear_congruential</code> 类模板 </a></li>
-
-    <li><a href="#rand48"><code>rand48</code> 类</a></li>
-
- <li><a href="#additive_combine"><code>random::additive_combined</code> 类模板</a></li>
-
- <li><a href="#shuffle_output"><code>random::shuffle_output</code> 类模 板</a></li>
-
- <li><a href="#inversive_congruential"><code>random::inversive_congruential</code> 类模板</a></li>
-
- <li><a href="#mersenne_twister"><code>random::mersenne_twister</code> 类模板</a></li>
-
- <li><a href="#lagged_fibonacci"><code>random::lagged_fibonacci</code> 类模板</a></li>
-
-    <li><a href="#performance">性能</a></li>
-  </ul>
-
-  <h2><a name="intro" id="intro">简介</a></h2>
-
- <p>本库提供了数个伪随机数生成器。伪随机数生成器的性质与其算法和参数都有密 切的关系。生成算法用取数值参数的类模板实现,封装在 <code>boost::random</code> 名字空间中。预先选择好的一组参数通过用 <code>typedef</code> 进行专门化来给出,置于 <code>boost</code> 名字空间中。 </p>
-
- <p>程序执行过程中不应当频繁构造伪随机数生成器。原因有二:其一,生成器的构 造要求对其内部状态进行完全的初始化;因此包含大量内部状态的生成器 (详下) 的构 造往往是昂贵的。其二,生成器的构造需要提供序列的“种子”。取得多个良好的“种子 ”值往往是困难的。取得种子的方法之一是使用精确度尽可能高 (毫秒甚至纳秒) 的系 统时间。如果再构建一个生成器之后再构建另一个,那么它们所使用的种子值之差会很 接近一个常数。若系统时间的精确度不够高,这个差值甚至为零,从而得到两个行为相 同的生成器。对于很多应用,这样的行为都是不合适的。</p>
-
- <p>注意以下描述的所有伪随机数生成器都是 CopyConstructible and Assignable。生成器的复制或赋值将会复制其内部状态,因此原有生成器和副本将会生 成完全相同的随机数序列。这种行为往往不是需要的。特别注意标准库中的算法,如 std::generate。它们取函子的值作为参数,因此会调用复制构造函数。</p>
-
- <p>下表给出了生成器某些性质的概览。循环长度是给出了生成器性质的粗略描 述;相对速度是性能的量度,值越大表示随机数生成越快。</p>
-
-  <table border="1" summary="">
-    <tr>
-      <th>生成器</th>
-
-      <th>循环长度</th>
-
-      <th>内存需求 (近似)</th>
-
-      <th>相对速度 (近似)</th>
-
-      <th>备注</th>
-    </tr>
-
-    <tr>
-      <td><a href="#minstd_rand"><code>minstd_rand</code></a></td>
-
-      <td>2<sup>31</sup>-2</td>
-
-      <td><code>sizeof(int32_t)</code></td>
-
-      <td>40</td>
-
-      <td>-</td>
-    </tr>
-
-    <tr>
-      <td><a href="#rand48"><code>rand48</code></a></td>
-
-      <td>2<sup>48</sup>-1</td>
-
-      <td><code>sizeof(uint64_t)</code></td>
-
-      <td>80</td>
-
-      <td>-</td>
-    </tr>
-
-    <tr>
-      <td><code>lrand48</code> (C library)</td>
-
-      <td>2<sup>48</sup>-1</td>
-
-      <td>-</td>
-
-      <td>20</td>
-
-      <td>状态由全局变量保存</td>
-    </tr>
-
-    <tr>
-      <td><a href="#ecuyer1988"><code>ecuyer1988</code></a></td>
-
-      <td>约 2<sup>61</sup></td>
-
-      <td><code>2*sizeof(int32_t)</code></td>
-
-      <td>20</td>
-
-      <td>-</td>
-    </tr>
-
-    <tr>
-      <td><code><a href="#kreutzer1986">kreutzer1986</a></code></td>
-
-      <td>?</td>
-
-      <td><code>1368*sizeof(uint32_t)</code></td>
-
-      <td>60</td>
-
-      <td>-</td>
-    </tr>
-
-    <tr>
-      <td><code><a href="#hellekalek1995">hellekalek1995</a></code></td>
-
-      <td>2<sup>31</sup>-1</td>
-
-      <td><code>sizeof(int32_t)</code></td>
-
-      <td>3</td>
-
-      <td>good uniform distribution in several dimensions</td>
-    </tr>
-
-    <tr>
-      <td><code><a href="#mt11213b">mt11213b</a></code></td>
-
-      <td>2<sup>11213</sup>-1</td>
-
-      <td><code>352*sizeof(uint32_t)</code></td>
-
-      <td>100</td>
-
-      <td>good uniform distribution in up to 350 dimensions</td>
-    </tr>
-
-    <tr>
-      <td><code><a href="#mt19937">mt19937</a></code></td>
-
-      <td>2<sup>19937</sup>-1</td>
-
-      <td><code>625*sizeof(uint32_t)</code></td>
-
-      <td>100</td>
-
-      <td>good uniform distribution in up to 623 dimensions</td>
-    </tr>
-
-    <tr>
-      <td><code><a href=
-      "#lagged_fibonacci_spec">lagged_fibonacci607</a></code></td>
-
-      <td>约 2<sup>32000</sup></td>
-
-      <td><code>607*sizeof(double)</code></td>
-
-      <td>150</td>
-
-      <td>-</td>
-    </tr>
-
-    <tr>
-      <td><code><a href=
-      "#lagged_fibonacci_spec">lagged_fibonacci1279</a></code></td>
-
-      <td>约 2<sup>67000</sup></td>
-
-      <td><code>1279*sizeof(double)</code></td>
-
-      <td>150</td>
-
-      <td>-</td>
-    </tr>
-
-    <tr>
-      <td><code><a href=
-      "#lagged_fibonacci_spec">lagged_fibonacci2281</a></code></td>
-
-      <td>约 2<sup>120000</sup></td>
-
-      <td><code>2281*sizeof(double)</code></td>
-
-      <td>150</td>
-
-      <td>-</td>
-    </tr>
-
-    <tr>
-      <td><code><a href=
-      "#lagged_fibonacci_spec">lagged_fibonacci3217</a></code></td>
-
-      <td>约 2<sup>170000</sup></td>
-
-      <td><code>3217*sizeof(double)</code></td>
-
-      <td>150</td>
-
-      <td>-</td>
-    </tr>
-
-    <tr>
-      <td><code><a href=
-      "#lagged_fibonacci_spec">lagged_fibonacci4423</a></code></td>
-
-      <td>约 2<sup>230000</sup></td>
-
-      <td><code>4423*sizeof(double)</code></td>
-
-      <td>150</td>
-
-      <td>-</td>
-    </tr>
-
-    <tr>
-      <td><code><a href=
-      "#lagged_fibonacci_spec">lagged_fibonacci9689</a></code></td>
-
-      <td>约 2<sup>510000</sup></td>
-
-      <td><code>9689*sizeof(double)</code></td>
-
-      <td>150</td>
-
-      <td>-</td>
-    </tr>
-
-    <tr>
-      <td><code><a href=
-      "#lagged_fibonacci_spec">lagged_fibonacci19937</a></code></td>
-
-      <td>约 2<sup>1050000</sup></td>
-
-      <td><code>19937*sizeof(double)</code></td>
-
-      <td>150</td>
-
-      <td>-</td>
-    </tr>
-
-    <tr>
-      <td><code><a href=
-      "#lagged_fibonacci_spec">lagged_fibonacci23209</a></code></td>
-
-      <td>约 2<sup>1200000</sup></td>
-
-      <td><code>23209*sizeof(double)</code></td>
-
-      <td>140</td>
-
-      <td>-</td>
-    </tr>
-
-    <tr>
-      <td><code><a href=
-      "#lagged_fibonacci_spec">lagged_fibonacci44497</a></code></td>
-
-      <td>约 2<sup>2300000</sup></td>
-
-      <td><code>44497*sizeof(double)</code></td>
-
-      <td>60</td>
-
-      <td>-</td>
-    </tr>
-  </table>
-
- <p>可以从上表中观察到,选择随机数生成器时往往要在品质、性能、内存三者之间 作出权衡。本库中提供的大量生成器足以让程序员选择最适合自己应用领域的一个。此 外,在 Monte Carlo 模拟中使用多个有着根本性不同的随机数生成器将会提高结果的 可信度。</p>
-
- <p>如果你不知如何选择,不妨先使用 <code>mt19937</code>:它快速、可靠。 </p>
-
- <p><em>注意:</em>以上随机数生成器不能用于要求使用不确定随机数的应用领 域;关于不确定随机数生成器,参看 <a href="nondet_random.html">nondet_random.html</a>。</p>
-
- <p>对于在 <a href="random-concepts.html">概念文档</a> 中已经给出定义的成 员,在下面的描述中不会详细说明。</p>
-
- <h2><code>&lt;boost/random.hpp&gt;</code> 中的生成器:<a name="synopsis" id="synopsis">概览</a></h2>
-  <pre>
-namespace boost {
-  namespace random {
-    template&lt;class IntType, IntType m&gt;
-    class const_mod;
- template&lt;class IntType, IntType a, IntType c, IntType m, IntType val&gt;
-    class linear_congruential;
-  }
-  class rand48;
-  typedef random::linear_congruential&lt; /* ... */ &gt; minstd_rand0;
-  typedef random::linear_congruential&lt; /* ... */ &gt; minstd_rand;
-
-  namespace random {
- template&lt;class DataType, int w, int n, int m, int r, DataType a, int u,
-        int s, DataType b, int t, DataType c, int l, IntType val&gt;
-    class mersenne_twister;
-  }
-  typedef random::mersenne_twister&lt; /* ... */ &gt; mt11213b;
-  typedef random::mersenne_twister&lt; /* ... */ &gt; mt19937;
-
-  namespace random {
-    template&lt;class FloatType, unsigned int  p, unsigned int q&gt;
-    class lagged_fibonacci;
-  }
-  typedef random::lagged_fibonacci&lt; /* ... */ &gt; lagged_fibonacci607;
-  typedef random::lagged_fibonacci&lt; /* ... */ &gt; lagged_fibonacci1279;
-  typedef random::lagged_fibonacci&lt; /* ... */ &gt; lagged_fibonacci2281;
-  typedef random::lagged_fibonacci&lt; /* ... */ &gt; lagged_fibonacci3217;
-  typedef random::lagged_fibonacci&lt; /* ... */ &gt; lagged_fibonacci4423;
-  typedef random::lagged_fibonacci&lt; /* ... */ &gt; lagged_fibonacci9689;
- typedef random::lagged_fibonacci&lt; /* ... */ &gt; lagged_fibonacci19937; - typedef random::lagged_fibonacci&lt; /* ... */ &gt; lagged_fibonacci23209; - typedef random::lagged_fibonacci&lt; /* ... */ &gt; lagged_fibonacci44497;
-} // namespace boost
-</pre>
-
- <h2><a name="const_mod" id="const_mod"><code>random::const_mod</code> 类 模板</a></h2>
-
-  <h3>概览</h3>
-  <pre>
-template&lt;class IntType, IntType m&gt;
-class random::const_mod
-{
-public:
-  template&lt;IntType c&gt;
-  static IntType add(IntType x);
-
-  template&lt;IntType a&gt;
-  static IntType mult(IntType x);
-
-  template&lt;IntType a, IntType c&gt;
-  static IntType mult_add(IntType x);
-
-  static IntType invert(IntType x);
-private:
-  const_mod();         // don't instantiate
-};
-</pre>
-
-  <h3>描述</h3>
-
- <p><code>const_mod</code> 类模板提供了同余运算 (模运算) 函数;这些函数小 心设计,确保不会造成溢出。所有的成员函数都是静态 的;<code>const_mod&lt;&gt;</code> 不允许实例化。</p>
-
- <p>模板参数 <code>IntType</code> 为某一整数类型,<code>m</code> 为模数 (modulus)。</p>
-
- <p><em>注记:</em>以下资料给出了一个方法,允许 m 值很大时仍能快速进行同余 乘法:</p>
-
-  <blockquote>
-    "A more portable FORTRAN random number generator", Linus Schrage, ACM
-    Transactions on Mathematical Software, Vol. 5, No. 2, June 1979, pp.
-    132-138
-  </blockquote>
-
-  <h3>成员函数</h3>
-  <pre>
-template&lt;IntType c&gt; static IntType add(IntType x)
-</pre>
-
-  <p><strong>返回:</strong> (x+c) mod m</p>
-  <pre>
-template&lt;IntType a&gt; static IntType mult(IntType x)
-</pre>
-
-  <p><strong>返回:</strong> (a*x) mod m</p>
-  <pre>
-template&lt;IntType a, IntType c&gt; static IntType
-mult_add(IntType x)
-</pre>
-
-  <p><strong>返回:</strong> (a*x+c) mod m</p>
-  <pre>
-static IntType invert(IntType x)
-</pre>
-
-  <p><strong>返回:</strong>  满足 (a*i) mod m == 1 的 i<br>
-  <strong>前条件</strong> m 为质数</p>
-
- <h2><a name="linear_congruential" id="linear_congruential"><code>random::linear_congruential</code> 类模板 </a></h2>
-
-  <h3>概览</h3>
-  <pre>
-#include &lt;<a href=
-"../../boost/random/linear_congruential.hpp">boost/random/linear_congruential.hpp</a>&gt;
-
-template&lt;class IntType, IntType a, IntType c, IntType m, IntType val&gt;
-class linear_congruential
-{
-public:
-  typedef IntType result_type;
-  static const IntType multiplier = a;
-  static const IntType increment = c;
-  static const IntType modulus = m;
-  static const bool has_fixed_range = true;
-  static const result_type min_value;
-  static const result_type max_value;
-  explicit linear_congruential_fixed(IntType x0 = 1);
-  // compiler-generated copy constructor and assignment operator are fine
-  void seed(IntType x0);
-  IntType operator()();
-};
-
-typedef random::linear_congruential&lt;long, 16807L, 0, 2147483647L,
-     1043618065L&gt; minstd_rand0;
-typedef random::linear_congruential&lt;long, 48271L, 0, 2147483647L,
-     399268537L&gt; minstd_rand;
-</pre>
-
-  <h3>描述</h3>
-
- <p><code>linear_congruential</code> 类模板的实例是 <a href="random-concepts.html#pseudo-rng">伪随机数生成器</a> 的模型。以下资料给 出了线性同余 (linear congruential) 伪随机数生成器的描述:</p>
-
-  <blockquote>
-    "Mathematical methods in large-scale computing units", D. H. Lehmer,
- Proc. 2nd Symposium on Large-Scale Digital Calculating Machines, Harvard
-    University Press, 1951, pp. 141-146
-  </blockquote>
- 令 x(n) 为伪随机数生成器的返回值序列。对于线性同余生成器,有 x(n+1) := (a * x(n) + c) mod m。生成器的参数是 x(0), a, c, m。模板参数 <code>IntType</code> 为某一整数类型,a, c, m 须在其可表示范围内。a, c 应小 于 m。
-
- <p><em>注意:</em> 此生成器的品质很大程度上取决于参数的选择。用户代码应该 使用已经选择好参数的生成器,如 <code>minstd_rand</code>。<br> -对参数 a, c, m 的每一组选择,都附带定义了一些类别,从而 <code>static</code> 成员不会违反单一定义原则。</p>
-
-  <h3>成员</h3>
-  <pre>
-explicit linear_congruential(IntType x0 = 1)
-</pre>
-
- <p><strong>效果:</strong>构造一 <code>linear_congruential</code> 生成 器,令其 x(0) := <code>x0</code>。</p>
-  <pre>
-void seed(IntType x0)
-</pre>
-
-  <p><strong>效果:</strong>令生成器当前的 x(n) 值为 <code>x0</code>。</p>
-
-  <h3><a name="minstd_rand" id="minstd_rand">专门化</a></h3>
-
-  <p>专门化 <code>minstd_rand0</code> 来自以下资料:</p>
-
-  <blockquote>
-    A pseudo-random number generator for the System/360, P.A. Lewis, A.S.
-    Goodman, J.M. Miller, IBM Systems Journal, Vol. 8, No. 2, 1969, pp.
-    136-146
- </blockquote>以下资料中有 <code>minstd_rand0</code> 以及 <code>minstd_rand</code> 的讨论:
-
-  <blockquote>
-    "Random Number Generators: Good ones are hard to find", Stephen K. Park
- and Keith W. Miller, Communications of the ACM, Vol. 31, No. 10, October
-    1988, pp. 1192-1201
-  </blockquote>
-
-  <h2><a name="rand48" id="rand48"><code>rand48</code> 类</a></h2>
-
-  <h3>概览</h3>
-  <pre>
-#include &lt;<a href=
-"../../boost/random/linear_congruential.hpp">boost/random/linear_congruential.hpp</a>&gt;
-
-class rand48
-{
-public:
-  typedef int32_t result_type;
-  static const bool has_fixed_range = true;
-  static const int32_t min_value = 0;
-  static const int32_t max_value = 0x7fffffff;
-
-  explicit rand48(int32_t x0 = 1);
-  explicit rand48(uint64_t x0);
-  // compiler-generated copy ctor and assignment operator are fine
-  void seed(int32_t x0);
-  void seed(uint64_t x0);
-  int32_t operator()();
-};
-</pre>
-
-  <h3>描述</h3>
-
- <p><code>rand48</code> 类是 <a href="random-concepts.html#pseudo-rng">伪 随机数生成器</a>的模型。它使用线性同余算法,其中参数 a = 0x5DEECE66D, c = 0xB, m = 2**48。它能产生与某些系统上的 <code>lrand48()</code> 函数相同的结 果 (假设没有调用 <code>lcong48</code>)。</p>
-
- <p>该类中的常量和枚举定义等使用了 <code>uint64_t</code>;如果系统没有提供 整数类型 <code>uint64_t</code>,该类不可用。</p>
-
-  <h3>构造函数</h3>
-  <pre>
-rand48(int32_t x0)
-</pre>
-
- <p><strong>效果:</strong>构造一 <code>rand48</code> 生成器,令其 x(0) := (<code>x0</code> &lt;&lt; 16) | 0x330e。</p>
-  <pre>
-rand48(uint64_t x0)
-</pre>
-
- <p><strong>效果:</strong> 构造一 <code>rand48</code> 生成器,令其 x(0) := <code>x0</code>。</p>
-
-  <h3>赋种</h3>
-  <pre>
-void seed(int32_t x0)
-</pre>
-
- <p><strong>效果:</strong> 令生成器当前的 x(n) 值为 (<code>x0</code> &lt;&lt; 16) | 0x330e。</p>
-  <pre>
-void seed(uint64_t x0)
-</pre>
-
-  <p><strong>效果:</strong> 令生成器当前的 x(n) 值为 <code>x0</code>。</p>
-
- <h2><a name="additive_combine" id="additive_combine"><code>random::additive_combine</code>类模板</a></h2>
-
-  <h3>概览</h3>
-  <pre>
-#include &lt;<a href=
-"../../boost/random/additive_combine.hpp">boost/random/additive_combine.hpp</a>&gt;
-
-template&lt;class MLCG1, class MLCG2, typename MLCG1::result_type val&gt;
-class random::additive_combine
-{
-public:
-  typedef MLCG1 first_base;
-  typedef MLCG2 second_base;
-  typedef typename MLCG1::result_type result_type;
-  static const bool has_fixed_range = true;
-  static const result_type min_value = 1;
-  static const result_type max_value = MLCG1::max_value-1;
-  additive_combine();
-  additive_combine(typename MLCG1::result_type seed1,
-                   typename MLCG2::result_type seed2);
-  result_type operator()();
-  bool validation(result_type x) const;
-};
-
-typedef random::additive_combine&lt;
-    random::linear_congruential&lt;int32_t, 40014, 0, 2147483563, 0&gt;,
-    random::linear_congruential&lt;int32_t, 40692, 0, 2147483399, 0&gt;,
-  /* unknown */ 0&gt; ecuyer1988;
-
-</pre>
-
-  <h3>描述</h3>
-
- <p><code>additive_combine</code> 类模板的实例是 <a href="random-concepts.html#pseudo-rng">伪随机数生成器</a> 的模型。它把两个倍 增线性同余生成器 (即 c = 0 的生成器) 组合起来。以下资料给出了其描述:</p>
-
-  <blockquote>
-    "Efficient and Portable Combined Random Number Generators", Pierre
-    L'Ecuyer, Communications of the ACM, Vol. 31, No. 6, June 1988, pp.
-    742-749, 774
- </blockquote>模板参数 <code>MLCG1</code> 和 <code>MLCG2</code> 应为两个不 同的线性同余生成器,且都有 c = 0。每次调用返回 X(n) := (MLCG1(n) - MLCG2(n)) mod (m1 - 1),其中 m1 为 <code>MLCG1</code> 的模数。
-
- <p>模板参数 <code>val</code> 为 <code>validation</code> 检验的参考值。 </p>
-
-  <h3>成员</h3>
-  <pre>
-additive_combine()
-</pre>
-
- <p><strong>效果:</strong>用两个基础生成器的默认构造函数来构造一 <code>additive_combine</code> 生成器。</p>
-  <pre>
-additive_combine(typename MLCG1::result_type seed1,
-                 typename MLCG2::result_type seed2)
-</pre>
-
- <p><strong>效果:</strong>以 <code>seed1</code> 和 <code>seed2</code> 分 别为两基础构造函数的参数来构造一 <code>additive_combine</code> 生成器。</p>
-
-  <h3><a name="ecuyer1988" id="ecuyer1988">专门化</a></h3>
-
-  <p>专门化 <code>ecuyer1988</code> 在上面的资料中给出。</p>
-
- <h2><a name="shuffle_output" id="shuffle_output"><code>random::shuffle_output</code> 类模板</a></h2>
-
-  <h3>概览</h3>
-  <pre>
-#include &lt;<a href=
-"../../boost/random/shuffle_output.hpp">boost/random/shuffle_output.hpp</a>&gt;
-
-template&lt;class UniformRandomNumberGenerator, int k,
-  typename UniformRandomNumberGenerator::result_type val = 0&gt;
-class random::shuffle_output
-{
-public:
-  typedef UniformRandomNumberGenerator base_type;
-  typedef typename base_type::result_type result_type;
-  static const bool has_fixed_range = false;
-
-  shuffle_output();
-  template&lt;class T&gt; explicit shuffle_output(T seed);
-  explicit shuffle_output(const base_type &amp; rng);
-  template&lt;class T&gt; void seed(T s);
-
-  result_type operator()();
-  result_type min() const;
-  result_type max() const;
-  bool validation(result_type) const;
-};
-</pre>
-
-  <h3>描述</h3>
-
- <p><code>shuffle_output</code> 类模板的实例是 <a href="random-concepts.html#pseudo-rng">伪随机数生成器</a> 的模型。它把某种均 匀随机数生成器 (通常是线性同余生成器) 的多个输出混合起来,以获得较好的统计学 性质。据 Donald E. Knuth 在 "The Art of Computer Programming, Vol. 2" 中所 载,这一算法在以下资料中给出:</p>
-
-  <blockquote>
- "Improving a poor random number generator", Carter Bays and S.D. Durham,
-    ACM Transactions on Mathematical Software, Vol. 2, 1979, pp. 59-64.
- </blockquote>基础生成器的输出缓冲在长度为 k 的数组中。每一个输出 X(n) 另 有一个用途:它给出了 X(n+1) 在数组中的位置。使用过的数组元素由基础生成器产生 的新输出取代。
-
- <p>模板参数为基础生成器和数组长度 k,其中 k 一般取 100 左右的值。模板参 数 <code>val</code> 为 <code>validation</code> 检验的参考值。</p>
-
-  <h3>成员</h3>
-  <pre>
-shuffle_output()
-</pre>
-
- <p><strong>效果:</strong>用基础生成器的默认构造函数构造一 <code>shuffle_output</code> 生成器。</p>
-
-  <p><strong>复杂度:</strong>基础生成器的 k+1 次调用。</p>
-  <pre>
-template&lt;class T&gt; explicit shuffle_output(T seed)
-</pre>
-
- <p><strong>效果:</strong>以 <code>seed</code> 为基础生成器单参数构造函数 的参数构造一 <code>shuffle_output</code> 生成器。</p>
-
-  <p><strong>复杂度:</strong>基础生成器的 k+1 次调用。</p>
-  <pre>
-explicit shuffle_output(const base_type &amp; rng)
-</pre>
-
- <p><strong>前条件:</strong> 模板参数 <code>UniformRandomNumberGenerator</code> 为一 CopyConstructible 类型。</p>
-
- <p><strong>效果:</strong> 通过复制传递的生成器构造一 <code>shuffle_output</code> 生成器。</p>
-
-  <p><strong>复杂度:</strong>基础生成器的 k+1 次调用。</p>
-  <pre>
-template&lt;class T&gt; void seed(T s)
-</pre>
-
- <p><strong>效果:</strong>用 <code>seed</code> 为参数调用基础生成器的 <code>seed</code> 方法,并对内部缓冲数组重新初始化。</p>
-
-  <p><strong>复杂度:</strong>基础生成器的 k+1 次调用。</p>
-
-  <h3><a name="kreutzer1986" id="kreutzer1986">专门化</a></h3>
-
- <p>据 Harry Erwin 所述 (私人 e-mail),以下资料给出了专门化 <code>kreutzer1986</code> 的描述:</p>
-
-  <blockquote>
-    "System Simulation: programming Styles and Languages (International
-    Computer Science Series)", Wolfgang Kreutzer, Addison-Wesley, December
-    1986.
-  </blockquote>
-
- <h2><a name="inversive_congruential" id="inversive_congruential"><code>random::inversive_congruential</code> 类模 板</a></h2>
-
-  <h3>概览</h3>
-  <pre>
-#include &lt;<a href=
-"../../boost/random/inversive_congruential.hpp">boost/random/inversive_congruential.hpp</a>&gt;
-
-template&lt;class IntType, IntType a, IntType b, IntType p&gt;
-class random::inversive_congruential
-{
-public:
-  typedef IntType result_type;
-  static const bool has_fixed_range = true;
-  static const result_type min_value = (b == 0 ? 1 : 0);
-  static const result_type max_value = p-1;
-  static const result_type multiplier = a;
-  static const result_type increment = b;
-  static const result_type modulus = p;
-  explicit inversive_congruential(IntType y0 = 1);
-  void seed(IntType y0);
-  IntType operator()();
-};
-
-typedef random::inversive_congruential&lt;int32_t, 9102, 2147483647-36884165, 2147483647&gt; hellekalek1995;
-</pre>
-
-  <h3>描述</h3>
-
- <p><code>inversive_congruential</code> 类模板的实例是 <a href="random-concepts.html#pseudo-rng">伪随机数生成器</a> 的模型。它使用了逆 同余算法 (inversive congruential algorithm, ICG)。以下资料给出了这一算法的描 述:</p>
-
-  <blockquote>
- "Inversive pseudorandom number generators: concepts, results and links",
-    Peter Hellekalek, In: "Proceedings of the 1995 Winter Simulation
-    Conference", C. Alexopoulos, K. Kang, W.R. Lilegdon, and D. Goldsman
-    (editors), 1995, pp. 255-262. <a href=
-    
"ftp://random.mat.sbg.ac.at/pub/data/wsc95.ps";>ftp://random.mat.sbg.ac.at/pub/data/wsc95.ps</a>
- </blockquote>输出序列由 x(n+1) = (a*inv(x(n)) - b) (mod p) 定义,其中 x(0), a, b 和质数 p 是生成器的参数。inv(k) 为模 p 整数域中 k 的乘法逆元素。 特殊地,inv(0) := 0。
-
- <p>模板参数 <code>IntType</code> 应为一带符号整数类型,p 在其可表示范围 内。a, b 和 p 是生成器的参数。</p>
-
- <p><em>注记:</em>目前的实现使用欧几里德算法 (Euclidian Algorithm) 计算乘 法逆元素。因此,逆同余生成器比其它生成器慢 10-20 倍 (参见 <a href="#performance">performance</a> 一节)。然而,上面给出的资料指出这一生成 器应当只慢 3 倍左右,因此欧几里德算法可能不是计算乘法逆元素的最优算法。</p>
-
-  <h3>成员</h3>
-  <pre>
-inversive_congruential(IntType y0 = 1)
-</pre>
-
- <p><strong>效果:</strong>构造一 <code>inversive_congruential</code> 生成 器,其初始状态为 <code>y0</code>。</p>
-  <pre>
-void seed(IntType y0)
-</pre>
-
-  <p><strong>效果:</strong>令当前状态为 <code>y0</code>。</p>
-
-  <h3><a name="hellekalek1995" id="hellekalek1995">专门化</a></h3>
-
-  <p>上面的资料给出了专门化 <code>hellekalek1995</code> 的描述。</p>
-
- <h2><a name="mersenne_twister" id="mersenne_twister"><code>random::mersenne_twister</code> 类模板</a></h2>
-
-  <h3>概览</h3>
-  <pre>
-#include &lt;<a href=
-"../../boost/random/mersenne_twister.hpp">boost/random/mersenne_twister.hpp</a>&gt;
-
-template&lt;class DataType, int w, int n, int m, int r, DataType a, int u,
-int s, DataType b, int t, DataType c, int l, IntType val&gt;
-class random::mersenne_twister
-{
-public:
-  typedef DataType result_type;
-  static const bool has_fixed_range = true;
-  static const result_type min_value;
-  static const result_type max_value;
-  mersenne_twister();
-  explicit mersenne_twister(DataType value);
- template&lt;class Generator&gt; explicit mersenne_twister(Generator &amp; gen);
-  // compiler-generated copy ctor and assignment operator are fine
-  void seed();
-  void seed(DataType value);
-  template&lt;class Generator&gt; void seed(Generator &amp; gen);
-  result_type operator()();
-  bool validation(result_type) const;
-};
-
-typedef mersenne_twister&lt;uint32_t,351,175,19,0xccab8ee7,11,7,0x31b6ab00,15,0xffe50000,17, /* unknown */ 0&gt; mt11213b; -typedef mersenne_twister&lt;uint32_t,624,397,31,0x9908b0df,11,7,0x9d2c5680,15,0xefc60000,18, 3346425566U&gt; mt19937;
-</pre>
-
-  <h3>描述</h3>
-
- <p><code>mersenne_twister</code> 的实例是 <a href="random-concepts.html#pseudo-rng">伪随机数生成器</a> 的模型。以下资料给 出了其算法的描述:</p>
-
-  <blockquote>
-    "Mersenne Twister: A 623-dimensionally equidistributed uniform
-    pseudo-random number generator", Makoto Matsumoto and Takuji Nishimura,
-    ACM Transactions on Modeling and Computer Simulation: Special Issue on
- Uniform Random Number Generation, Vol. 8, No. 1, January 1998, pp. 3-30. - <!-- <a href="http://www.math.keio.ac.jp/matumoto/emt.html";>http://www.math.keio.ac.jp/matumoto/emt.html</a> --> - </blockquote><em>注记:</em>boost 库中的变种是重新实现的,不派生自也不使 用以上网站提供的 mt19937.c。不过两个生成器的等价性是经过检验的。<br> - 2005 年 4 月发现算法的一个 <a href="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html";>缺 陷</a> 后修改了用整数赋种的方法。<br>
-
- 此生成器的品质很大程度上取决于参数的选择。用户代码应该使用已经选择好参数 的生成器,如 <code>mt19937</code>。<br> - 此生成器的状态数组需要的内存是可观的。例如 <code>mt11213b</code> 需要约 1408 bytes 内存,而 <code>mt19937</code> 需要约 2496 bytes。
-
-  <h3>构造函数</h3>
-  <pre>
-mersenne_twister()
-</pre>
-
- <p><strong>效果:</strong> 构造一 <code>mersenne_twister</code> 并调用 <code>seed()</code>。</p>
-  <pre>
-explicit mersenne_twister(result_type value)
-</pre>
-
- <p><strong>效果:</strong> 构造一 <code>mersenne_twister</code> 并调用 <code>seed(value)</code>。</p>
-  <pre>
-template&lt;class Generator&gt; explicit mersenne_twister(Generator &amp; gen)
-</pre>
-
- <p><strong>效果:</strong> 构造一 <code>mersenne_twister</code> 并调用 <code>seed(gen)</code>。</p>
-
- <p><em>注意:</em>当使用左值进行直接初始化时 (如 <code>Gen gen2(gen);</code>),编译器将选择这一构造函数,而不是复制构造函数。若要复制另 一 <code>mersenne_twister</code> 的状态,使用 <code>Gen gen2 = gen;</code>;这是复制初始化的语法,将会调用复制构造函数。</p>
-
-  <h3>赋种</h3>
-  <pre>
-void seed()
-</pre>
-
-  <p><strong>效果:</strong>调用 <code>seed(result_type(5489))</code>。</p>
-  <pre>
-void seed(result_type value)
-</pre>
-
- <p><strong>效果:</strong>令状态 x(0) 为 v mod 2<sup>w</sup>。然后迭代 地,<br> - 令 x(i) 为 (i + 1812433253 * (x(i-1) <em>xor</em> (x(i-1) <em>rshift</em> w-2))) mod 2<sup>w</sup> for i = 1 .. n-1. x(n) 为 operator() 返回的第一个值。</p>
-  <pre>
-template&lt;class Generator&gt; void seed(Generator &amp; gen)
-</pre>
-
- <p><strong>效果:</strong>令 <code>mersenne_twister</code> 的当前状态为调 用<code>gen</code> <code>n</code> 次的结果序列。</p>
-
- <p><strong>复杂度:</strong><code>gen</code> 的 <code>n</code> 次调用。 </p>
-
- <p><em>注意:</em>当用左值调用 <code>seed</code> 时,函数重载的规则都将选 择这一函数模板,除非参数的类型和 <code>result_type</code> 相同。如果要用其它 的整数类型作参数,你应该先把它显式转换为 <code>result_type</code>。</p>
-
-  <h3><a name="mt11213b" id="mt11213b"></a><a name="mt19937" id=
-  "mt19937">专门化</a></h3>
-
- <p>专门化 <code>mt11213b</code> 和 <code>mt19937</code> 来自上面引用的资 料。</p>
-
- <h2><a name="lagged_fibonacci" id="lagged_fibonacci"><code>random::lagged_fibonacci</code> 类模板</a></h2>
-
-  <h3>概览</h3>
-  <pre>
-#include &lt;<a href=
-"../../boost/random/lagged_fibonacci.hpp">boost/random/lagged_fibonacci.hpp</a>&gt;
-
-template&lt;class FloatType, unsigned int p, unsigned int q&gt;
-class lagged_fibonacci
-{
-public:
-  typedef FloatType result_type;
-  static const bool has_fixed_range = false;
-  static const unsigned int long_lag = p;
-  static const unsigned int short_lag = q;
-  result_type min() const { return 0.0; }
-  result_type max() const { return 1.0; }
-  lagged_fibonacci();
-  explicit lagged_fibonacci(uint32_t value);
-  template&lt;class Generator&gt;
-  explicit lagged_fibonacci(Generator &amp; gen);
-  // compiler-generated copy ctor and assignment operator are fine
-  void seed(uint32_t value = 331u);
-  template&lt;class Generator&gt; void seed(Generator &amp; gen);
-  result_type operator()();
-  bool validation(result_type x) const;
-};
-
-typedef random::lagged_fibonacci&lt;double, 607, 273&gt; lagged_fibonacci607; -typedef random::lagged_fibonacci&lt;double, 1279, 418&gt; lagged_fibonacci1279; -typedef random::lagged_fibonacci&lt;double, 2281, 1252&gt; lagged_fibonacci2281; -typedef random::lagged_fibonacci&lt;double, 3217, 576&gt; lagged_fibonacci3217; -typedef random::lagged_fibonacci&lt;double, 4423, 2098&gt; lagged_fibonacci4423; -typedef random::lagged_fibonacci&lt;double, 9689, 5502&gt; lagged_fibonacci9689; -typedef random::lagged_fibonacci&lt;double, 19937, 9842&gt; lagged_fibonacci19937; -typedef random::lagged_fibonacci&lt;double, 23209, 13470&gt; lagged_fibonacci23209; -typedef random::lagged_fibonacci&lt;double, 44497, 21034&gt; lagged_fibonacci44497;
-</pre>
-
-  <h3>描述</h3>
-
- <p><code>lagged_fibonacci</code> 类模板的实例是 <a href="random-concepts.html#pseudo-rng">伪随机数生成器</a> 的模型。It uses a lagged Fibonacci algorithm with two lags p and q, - evaluated in floating-point arithmetic: x(i) = x(i-p) + x(i-q) (mod 1) with
-  p &gt; q. See</p>
-
-  <blockquote>
-    "Uniform random number generators for supercomputers", Richard Brent,
- Proc. of Fifth Australian Supercomputer Conference, Melbourne, Dec. 1992,
-    pp. 704-706.
-  </blockquote>
-
- <p><em>注意:</em>此生成器的品质很大程度上取决于参数的选择。用户代码应该 使用已经选择好参数的生成器,如 <code>lagged_fibonacci607</code>。<br> - 此生成器的状态数组需要的内存是可观的。例如 <code>lagged_fibonacci607</code> 需要约 4856 bytes 内存,而 <code>lagged_fibonacci44497</code> 需要约 350 KBytes。</p>
-
-  <h3>构造函数</h3>
-  <pre>
-lagged_fibonacci()
-</pre>
-
- <p><strong>效果:</strong>构造一 <code>lagged_fibonacci</code> 生成器并调 用 <code>seed()</code>。</p>
-  <pre>
-explicit lagged_fibonacci(uint32_t value)
-</pre>
-
- <p><strong>效果:</strong>构造一 <code>lagged_fibonacci</code> 生成器并调 用 <code>seed(value)</code>。</p>
-  <pre>
-template&lt;class Generator&gt; explicit lagged_fibonacci(Generator &amp; gen)
-</pre>
-
- <p><strong>效果:</strong>构造一 <code>lagged_fibonacci</code> 生成器并调 用 <code>seed(gen)</code>。</p>
-
-  <h3>赋种</h3>
-  <pre>
-void seed()
-</pre>
-
-  <p><strong>效果:</strong>调用 <code>seed(331u)</code>。</p>
-  <pre>
-void seed(uint32_t value)
-</pre>
-
- <p><strong>效果:</strong>用 <code>value</code> 作参数构造一 <code>minstd_rand0</code>,并用它作参数调用 <code>seed</code>。</p>
-  <pre>
-template&lt;class Generator&gt; void seed(Generator &amp; gen)
-</pre>
-
- <p><strong>效果:</strong>令 <code>lagged_fibonacci</code> 的状态为对 <code>uniform_01&lt;gen, FloatType&gt;</code> 的 <code>p</code> 次调用的结果 序列。<br> - <strong>复杂度:</strong>对 <code>gen</code> 的 <code>p</code> 次调用。 </p>
-
-  <h3><a name="lagged_fibonacci_spec" id=
-  "lagged_fibonacci_spec"></a>专门化</h3>
-
- <p>专门化 <code>lagged_fibonacci607</code> ... <code>lagged_fibonacci44497</code> (见上) use well tested lags.
-  (参考资料待添加)</p>
-
-  <h2><a name="performance" id="performance">性能</a></h2>
-
- <p>测试程序 <a href="random_speed.cpp">random_speed.cpp</a> 用一个紧凑的 循环测试 <a href="../../boost/random.hpp">random.hpp</a> 中上述算法的实现的 运行速度。测试环境:Pentium Pro 200 MHz with gcc 2.95.2, Linux 2.2.13, glibc 2.1.2。</p>
-
-  <table border="1" summary="">
-    <tr>
-      <th>类</th>
-
-      <th>每次调用耗时 [微秒, usec]</th>
-    </tr>
-
-    <tr>
-      <td>rand48</td>
-
-      <td>0.096</td>
-    </tr>
-
-    <tr>
-      <td>rand48 run-time configurable</td>
-
-      <td>0.697</td>
-    </tr>
-
-    <tr>
-      <td>lrand48 glibc 2.1.2</td>
-
-      <td>0.844</td>
-    </tr>
-
-    <tr>
-      <td>minstd_rand</td>
-
-      <td>0.174</td>
-    </tr>
-
-    <tr>
-      <td>ecuyer1988</td>
-
-      <td>0.445</td>
-    </tr>
-
-    <tr>
-      <td>kreutzer1986</td>
-
-      <td>0.249</td>
-    </tr>
-
-    <tr>
-      <td>hellekalek1995 (inversive)</td>
-
-      <td>4.895</td>
-    </tr>
-
-    <tr>
-      <td>mt11213b</td>
-
-      <td>0.165</td>
-    </tr>
-
-    <tr>
-      <td>mt19937</td>
-
-      <td>0.165</td>
-    </tr>
-
-    <tr>
-      <td>mt19937 original</td>
-
-      <td>0.185</td>
-    </tr>
-
-    <tr>
-      <td>lagged_fibonacci607</td>
-
-      <td>0.111</td>
-    </tr>
-
-    <tr>
-      <td>lagged_fibonacci4423</td>
-
-      <td>0.112</td>
-    </tr>
-
-    <tr>
-      <td>lagged_fibonacci19937</td>
-
-      <td>0.113</td>
-    </tr>
-
-    <tr>
-      <td>lagged_fibonacci23209</td>
-
-      <td>0.122</td>
-    </tr>
-
-    <tr>
-      <td>lagged_fibonacci44497</td>
-
-      <td>0.263</td>
-    </tr>
-  </table>
-
-  <p>误差范围为 +/- 10 纳秒 (nsec)。</p>
***The diff for this file has been truncated for email.***
=======================================
--- /trunk/libs/range/doc/mfc_atl.html  Thu Sep  4 19:42:35 2008
+++ /trunk/libs/range/doc/mfc_atl.html  Sat Sep 12 00:52:19 2009
@@ -1,14 +1,13 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
-<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
-<head>
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en"><head>

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

<meta name="generator" content="Docutils 0.3.10: http://docutils.sourceforge.net/"; />


-  <title>Boost Range MFC/ATL Extension</title>
-  <meta name="author" content="Shunsuke Sogame" />
+
+ <title>Boost Range MFC/ATL Extension</title><meta name="author" content="Shunsuke Sogame" />

   <meta name="date" content="26th of May 2006" />

@@ -293,15 +292,12 @@
 ul.auto-toc {
   list-style-type: none }

-  </style>
-</head>
-
-
+  </style></head>

 <body>

 <div class="document" id="boost-range-mfc-atl-extension">
-<h1 class="title"><img alt="Boost" src="http://www.boost.org/libs/ptr_container/doc/boost.png"; /> Range 的 MFC/ATL 扩展</h1> +<h1 class="title"><img style="width: 277px; height: 86px;" alt="Boost" src="../../ptr_container/doc/boost.png" /> Range 的 MFC/ATL 扩展</h1>

 <table class="docinfo" frame="void" rules="none">

@@ -817,5 +813,4 @@

 </div>

-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/regex/doc/html/boost_regex/background_information/history.html Tue Mar 31 01:07:16 2009 +++ /trunk/libs/regex/doc/html/boost_regex/background_information/history.html Sat Sep 12 00:52:19 2009
@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html><head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>History</title><link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
@@ -24,13 +24,18 @@
 <div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.background_information.history"></a><a href="history.html" title="History"> History</a>
 </h3></div></div></div>
-<h5><a name="id688173"></a><a class="link" href="history.html#boost_regex.background_information.history.boost_1_38">Boost +<h5><a name="id807313"></a><a class="link" href="history.html#boost_regex.background_information.history.boost_1_40">Boost
+1.40</a> </h5>
+<div class="itemizedlist">
+<ul type="disc"><li>Added support for many Perl 5.10 syntax elements including named
+sub-expressions, branch resets and recursive regular expressions.
+</li></ul></div><h5><a name="id688173"></a><a class="link" href="history.html#boost_regex.background_information.history.boost_1_38">Boost
 1.38</a> </h5>
 <div class="itemizedlist">
<ul type="disc"><li><span class="bold"><strong>Breaking change</strong></span>: empty expressions, and empty alternatives are now allowed when using the Perl regular expression syntax. This change has been added for Perl compatibility, when the new <a class="link" title="syntax_option_type" href="../ref/syntax_option_type.html"><code class="computeroutput"><span class="identifier">syntax_option_type</span></code></a><span class="emphasis"><em>no_empty_expressions</em></span> is set then the old
-behaviour is preserved and empty expressions are prohibited.
+behaviour is preserved and empty expressions are prohibited. This is issue <a href="https://svn.boost.org/trac/boost/ticket/1081"; target="_top">#1081</a>. </li><li>Added support for Perl style ${n} expressions in format strings (issue <a href="https://svn.boost.org/trac/boost/ticket/2556"; target="_top">#2556</a>). </li><li>Added support for accessing the location of sub-expressions within the regular expression string (issue <a href="https://svn.boost.org/trac/boost/ticket/2269"; target="_top">#2269</a>).
=======================================
--- /trunk/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html Sun Oct 5 19:30:35 2008 +++ /trunk/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html Sat Sep 12 00:52:19 2009
@@ -1,23 +1,22 @@
-<html>
-<head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>Boost-Extended Format String Syntax</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+
+<title>Boost-Extended Format String Syntax</title><link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Regex">
<link rel="up" href="../format.html" title="Search and Replace Format String Syntax">
 <link rel="prev" href="perl_format.html" title="Perl Format String Syntax">
-<link rel="next" href="../ref.html" title="Reference">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<link rel="next" href="../ref.html" title="Reference"></head>
+<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>
+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../../boost.png" height="86" width="277"></td>
 <td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
 <td align="center"><a href="../../../../../../more/index.htm">More</a></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="perl_format.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../format.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../ref.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
@@ -30,7 +29,7 @@
 <p>
Boost-Extended format strings treat all characters as literals except for
         '$', '\', '(', ')', '?', and ':'.
-        <br />
+        <br>
         Boost扩展格式化字符串将'$'、'\'、'('、')'、'?'和':'特殊对待。
       </p>
 <a name="boost_regex.format.boost_format_syntax.grouping"></a><h5>
@@ -40,7 +39,7 @@
 <p>
The characters '(' and ')' perform lexical grouping, so use \( and \) if
         you want a to output literal parenthesis.
-        <br />
+        <br>
         字符'('和')'实现字面分组,使用\(和\)来输出字面的括号。
       </p>
 <a name="boost_regex.format.boost_format_syntax.conditionals"></a><h5>
@@ -49,7 +48,7 @@
       </h5>
 <p>
The character '?' begins a conditional expression, the general form is:
-        <br />
+        <br>
         字符'?'开始一个条件表达式,通用格式为:
       </p>
 <p>
@@ -57,28 +56,31 @@
       </p>
 <p>
         where N is decimal digit.
-        <br />
+        <br>
         其中N为数字。
       </p>
 <p>
If sub-expression N was matched, then true-expression is evaluated and sent to output, otherwise false-expression is evaluated and sent to output.
-        <br />
+        <br>
如果子表达式N被匹配,那么true-expression被求值并送到输出,否则 false-expression被求值并送到输出。
       </p>
 <p>
You will normally need to surround a conditional-expression with parenthesis
         in order to prevent ambiguities.
-        <br />
+        <br>
         通常都需要将条件表达式用括号围绕起来,以防止二义性。
       </p>
 <p>
         For example, the format string "(?1foo:bar)" will replace each
         match found with "foo" if the sub-expression $1 was matched, and
         with "bar" otherwise.
-        <br />
- 例如,格式化字符串"(?1foo:bar)",如果子表达式$1匹配了,会将每个匹配 替换为"foo",否则为"bar"。
-      </p>
+        <br>
+ 例如,格式化字符串"(?1foo:bar)",如果子表达式$1匹配了,会将每个匹配 替换为"foo",否则为"bar"。</p><p>For sub-expressions with an index greater than 9, or for access to named +sub-expressions use:<br>对于索引数大于9的子表达式,或要访问命名的子表达 式,使用: </p>
+<p>?{INDEX}true-expression:false-expression </p>
+<p>or<br>或 </p>
+<p>?{NAME}true-expression:false-expression</p>
<a name="boost_regex.format.boost_format_syntax.placeholder_sequences"></a><h5>
 <a name="id525562"></a>
<a href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.placeholder_sequences">Placeholder
@@ -87,14 +89,11 @@
 <p>
Placeholder sequences specify that some part of what matched the regular
         expression should be sent to output as follows:
-        <br />
+        <br>
         占位符序列指明了正则表达式匹配的哪部分将被输出:
       </p>
 <div class="informaltable"><table class="table">
-<colgroup>
-<col>
-<col>
-</colgroup>
+<colgroup><col><col></colgroup>
 <thead><tr>
 <th>
               <p>
@@ -117,12 +116,18 @@
 <td>
               <p>
                 Outputs what matched the whole expression.
-                <br />
+                <br>
                 输出整个表达式的匹配。
               </p>
               </td>
 </tr>
-<tr>
+<tr><td>
+<p>$MATCH </p></td>
+<td>
+<p>As $&amp;</p><p>同 $&amp; </p></td></tr><tr><td>
+<p>${^MATCH} </p></td>
+<td>
+<p>As $&amp;</p><p>同&nbsp;$&amp; </p></td></tr><tr>
 <td>
               <p>
                 $`
@@ -133,12 +138,18 @@
Outputs the text between the end of the last match found (or the start of the text if no previous match was found), and the start
                 of the current match.
-                <br />
+                <br>
输出从前一个匹配的终点(如果没有前一次匹配则为文本的开始 ),到当前匹配开始处之间的文本。
               </p>
               </td>
 </tr>
-<tr>
+<tr><td>
+<p>$PREMATCH </p></td>
+<td>
+<p>As $`<br>同&nbsp;$` </p></td></tr><tr><td>
+<p>${^PREMATCH} </p></td>
+<td>
+<p>As $`</p><p>同&nbsp;$` </p></td></tr><tr>
 <td>
               <p>
                 $'
@@ -147,26 +158,42 @@
 <td>
               <p>
Outputs all the text following the end of the current match.
-                <br />
+                <br>
                 输出当前匹配终点之后的所有文本。
               </p>
               </td>
 </tr>
-<tr>
+<tr><td>
+<p>$POSTMATCH </p></td>
 <td>
+<p>As $'<br>同&nbsp;$' </p></td></tr><tr><td>
+<p>${^POSTMATCH} </p></td>
+<td>
+<p>As $'</p><p>同&nbsp;$' </p></td></tr><tr><td>
+<p>$+ </p></td>
+<td>
+<p>Outputs what matched the last marked sub-expression in the regular
+expression.<br>输出与正则表达式中最后一个被标记的子表达式相匹配的文本。 </p></td></tr>
+<tr><td>
+<p>$LAST_PAREN_MATCH </p></td>
+<td>
+<p>As $+<br>同&nbsp;$+ </p></td></tr><tr><td>
+<p>$LAST_SUBMATCH_RESULT </p></td>
+<td>
+<p>Outputs what matched the last sub-expression to be actually matched.<br>输出被实际匹配的最后子表达式的结果。 </p></td></tr><tr><td>
+<p>$^N </p></td>
+<td>
+<p>As $LAST_SUBMATCH_RESULT<br>同&nbsp;$LAST_SUBMATCH_RESULT </p></td></tr><tr><td>
               <p>
                 $$
               </p>
-              </td>
-<td>
+              </td><td>
               <p>
                 Outputs a literal '$'
-                <br />
+                <br>
                 输出字面符号'$'
               </p>
-              </td>
-</tr>
-<tr>
+              </td></tr><tr>
 <td>
               <p>
                 $n
@@ -175,17 +202,23 @@
 <td>
               <p>
                 Outputs what matched the n'th sub-expression.
-                <br />
+                <br>
                 输出第n个子表达式的匹配。
               </p>
               </td>
-</tr>
+</tr><tr><td>
+<p>${n} </p></td>
+<td>
+<p>Outputs what matched the n'th sub-expression.<br>输出第n个子表达式的匹 配。 </p></td></tr><tr><td>
+<p>$+{NAME} </p></td>
+<td>
+<p>Outputs whatever matched the sub-expression named "NAME".<br>输出名 为"NAME"的子表达式的匹配。 </p></td></tr>
 </tbody>
 </table></div>
 <p>
Any $-placeholder sequence not listed above, results in '$' being treated
         as a literal.
-        <br />
+        <br>
         任何不在上面列出的$-placeholder序列,都将导致'$'被作为字面符号。
       </p>
 <a name="boost_regex.format.boost_format_syntax.escape_sequences"></a><h5>
@@ -196,14 +229,11 @@
 <p>
An escape character followed by any character x, outputs that character unless
         x is one of the escape sequences shown below.
-        <br />
+        <br>
         一个转义符号后跟字符x,除非x是下面的转义序列之一,则输出字符x。
       </p>
 <div class="informaltable"><table class="table">
-<colgroup>
-<col>
-<col>
-</colgroup>
+<colgroup><col><col></colgroup>
 <thead><tr>
 <th>
               <p>
@@ -226,7 +256,7 @@
 <td>
               <p>
                 Outputs the bell character: '\a'.
-                <br />
+                <br>
                 输出铃响字符:'\a'。
               </p>
               </td>
@@ -240,7 +270,7 @@
 <td>
               <p>
                 Outputs the ANSI escape character (code point 27).
-                <br />
+                <br>
                 输出ANSI转义字符(码点为27)。
               </p>
               </td>
@@ -254,7 +284,7 @@
 <td>
               <p>
                 Outputs a form feed character: '\f'
-                <br />
+                <br>
                 输出换页字符:'\f'。
               </p>
               </td>
@@ -268,7 +298,7 @@
 <td>
               <p>
                 Outputs a newline character: '\n'.
-                <br />
+                <br>
                 输出换行字符:'\n'。
               </p>
               </td>
@@ -282,7 +312,7 @@
 <td>
               <p>
                 Outputs a carriage return character: '\r'.
-                <br />
+                <br>
                 输出回车字符:'\r'。
               </p>
               </td>
@@ -296,7 +326,7 @@
 <td>
               <p>
                 Outputs a tab character: '\t'.
-                <br />
+                <br>
                 输出制表符:'\t'。
               </p>
               </td>
@@ -310,7 +340,7 @@
 <td>
               <p>
                 Outputs a vertical tab character: '\v'.
-                <br />
+                <br>
                 输出垂直制表符:'\v'。
               </p>
               </td>
@@ -324,7 +354,7 @@
 <td>
               <p>
                 Outputs the character whose hexadecimal code point is 0xDD
-                <br />
+                <br>
                 输出码点为0xDD的十六进制字符
               </p>
               </td>
@@ -338,7 +368,7 @@
 <td>
               <p>
Outputs the character whose hexadecimal code point is 0xDDDDD
-                <br />
+                <br>
                 输出码点为0xDDDD的十六进制字符
               </p>
               </td>
@@ -352,7 +382,7 @@
 <td>
               <p>
                 Outputs the ANSI escape sequence "escape-X".
-                <br />
+                <br>
                 输出ANSI转义序列"escape-X"。
               </p>
               </td>
@@ -367,7 +397,7 @@
               <p>
If D is a decimal digit in the range 1-9, then outputs the text that
                 matched sub-expression D.
-                <br />
+                <br>
                 如果D是1-9范围内的数字,则输出子表达式D匹配的文本。
               </p>
               </td>
@@ -382,7 +412,7 @@
               <p>
Causes the next character to be outputted, to be output in lower
                 case.
-                <br />
+                <br>
                 使下一个被输出的字符输出为小写。
               </p>
               </td>
@@ -397,7 +427,7 @@
               <p>
Causes the next character to be outputted, to be output in upper
                 case.
-                <br />
+                <br>
                 使下一个被输出的字符输出为大写。
               </p>
               </td>
@@ -412,7 +442,7 @@
               <p>
Causes all subsequent characters to be output in lower case, until
                 a \E is found.
-                <br />
+                <br>
                 使后面所有的字符都输出为小写,直到碰到\E。
               </p>
               </td>
@@ -427,7 +457,7 @@
               <p>
Causes all subsequent characters to be output in upper case, until
                 a \E is found.
-                <br />
+                <br>
                 使后面所有的字符都输出为大写,直到碰到\E。
               </p>
               </td>
@@ -441,7 +471,7 @@
 <td>
               <p>
                 Terminates a \L or \U sequence.
-                <br />
+                <br>
                 结束\L或\U的序列。
               </p>
               </td>
@@ -449,17 +479,16 @@
 </tbody>
 </table></div>
 </div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
 <td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p> Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
       </p>
 </div></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="perl_format.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../format.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../ref.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/regex/doc/html/boost_regex/format/perl_format.html Tue Mar 31 01:07:16 2009 +++ /trunk/libs/regex/doc/html/boost_regex/format/perl_format.html Sat Sep 12 00:52:19 2009
@@ -35,44 +35,42 @@
Placeholder sequences specify that some part of what matched the regular
         expression should be sent to output as follows:
         <br>
-        占位符序列指明了正则表达式匹配的哪部分被送到输出中:
-      </p>
-<div class="informaltable"><table class="table">
+ 占位符序列指明了正则表达式匹配的哪部分被送到输出中:</p><div class="informaltable">
+<table class="table">
 <colgroup><col><col></colgroup>
-<thead><tr>
+<thead>
+<tr>
 <th>
-              <p>
-                Placeholder
-              </p>
-              </th>
+<p>Placeholder </p></th>
 <th>
-              <p>
-                Meaning
-              </p>
-              </th>
-</tr></thead>
+<p>Meaning </p></th></tr></thead>
 <tbody>
-<tr>
-<td>
+<tr><td>
               <p>
                 $&amp;
               </p>
-              </td>
-<td>
+              </td><td>
               <p>
                 Outputs what matched the whole expression.
                 <br>
                 输出整个表达式的匹配。
               </p>
-              </td>
-</tr>
+              </td></tr>
 <tr>
 <td>
+<p>$MATCH </p></td>
+<td>
+<p>As $&amp; </p></td></tr>
+<tr>
+<td>
+<p>${^MATCH} </p></td>
+<td>
+<p>As $&amp; </p></td></tr>
+<tr><td>
               <p>
                 $`
               </p>
-              </td>
-<td>
+              </td><td>
               <p>
Outputs the text between the end of the last match found (or the start of the text if no previous match was found), and the start
@@ -80,56 +78,90 @@
                 <br>
输出上次匹配结束(如果没有上次匹配则为文本的开始),到当前匹 配开始之间的文本。
               </p>
-              </td>
-</tr>
+              </td></tr>
 <tr>
 <td>
+<p>$PREMATCH </p></td>
+<td>
+<p>As $` </p></td></tr>
+<tr>
+<td>
+<p>${^PREMATCH} </p></td>
+<td>
+<p>As $` </p></td></tr>
+<tr><td>
               <p>
                 $'
               </p>
-              </td>
-<td>
+              </td><td>
               <p>
Outputs all the text following the end of the current match.
                 <br>
                 输出当前匹配结束之后的所有文本。
               </p>
-              </td>
-</tr>
+              </td></tr>
 <tr>
 <td>
+<p>$POSTMATCH </p></td>
+<td>
+<p>As $' </p></td></tr>
+<tr>
+<td>
+<p>${^POSTMATCH} </p></td>
+<td>
+<p>As $' </p></td></tr>
+<tr>
+<td>
+<p>$+ </p></td>
+<td>
+<p>Outputs what matched the last marked sub-expression in the regular
+expression.<br>输出与正则表达式最后一个被标记子表达式的匹配。 </p></td></tr>
+<tr>
+<td>
+<p>$LAST_PAREN_MATCH </p></td>
+<td>
+<p>As $+ </p></td></tr>
+<tr>
+<td>
+<p>$LAST_SUBMATCH_RESULT </p></td>
+<td>
+<p>Outputs what matched the last sub-expression to be actually matched.<br>输出实际匹配的最后一个子表达式的匹配。
+</p></td></tr>
+<tr>
+<td>
+<p>$^N </p></td>
+<td>
+<p>As $LAST_SUBMATCH_RESULT </p></td></tr>
+<tr><td>
               <p>
                 $$
               </p>
-              </td>
-<td>
+              </td><td>
               <p>
                 Outputs a literal '$'
                 <br>
                 输出字面字符'$'
               </p>
-              </td>
-</tr>
-<tr>
-<td>
+              </td></tr>
+<tr><td>
               <p>
                 $n
               </p>
-              </td>
-<td>
+              </td><td>
               <p>
                 Outputs what matched the n'th sub-expression.
                 <br>
                 输出第n个子表达式的匹配。
               </p>
-              </td>
-</tr><tr><td>
-<p>${n} </p></td>
-<td>
+              </td></tr>
+<tr><td>
+<p>${n} </p></td><td>
<p>Outputs what matched the n'th sub-expression.&nbsp;<br>输出第n个子表达式 的匹配。</p></td></tr>
-</tbody>
-</table></div>
-<p>
+<tr>
+<td>
+<p>$+{NAME} </p></td>
+<td>
+<p>Outputs whatever matched the sub-expression named "NAME".<br>输出名 为"NAME"的子表达式的匹配。 </p></td></tr></tbody></table></div><br><p> Any $-placeholder sequence not listed above, results in '$' being treated
         as a literal.
         <br>
=======================================
--- /trunk/libs/regex/doc/html/boost_regex/ref/match_results.html Sun Oct 12 23:27:05 2008 +++ /trunk/libs/regex/doc/html/boost_regex/ref/match_results.html Sat Sep 12 00:52:19 2009
@@ -1,23 +1,22 @@
-<html>
-<head>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>match_results</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+
+<title>match_results</title><link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Regex">
 <link rel="up" href="../ref.html" title="Reference">
 <link rel="prev" href="basic_regex.html" title="basic_regex">
-<link rel="next" href="sub_match.html" title="sub_match">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<link rel="next" href="sub_match.html" title="sub_match"></head>
+<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">
+<table cellpadding="2" width="100%"><tbody><tr>
+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../../boost.png" height="86" width="277"></td>
 <td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
 <td align="center"><a href="../../../../../../more/index.htm">More</a></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="basic_regex.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="sub_match.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
@@ -40,7 +39,7 @@
matches back to the user: this is achieved this by defining a class <code class="computeroutput"><span class="identifier">match_results</span></code> that acts as an indexed collection of sub-expression matches, each sub-expression match being contained in an object of type <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>.
-        <br />
+        <br>
正则表达式和许多简单的模式匹配算法不同,既能寻找全部的匹配,也能产 生子表达式的匹配:在模式中通过一双括号(...)界定的每个子表达式。 需要有某种方法来向用户报告子表达式的匹配结果:这是通过定义类<code class="computeroutput"><span class="identifier">match_results</span></code>(子表达式匹配的有序集合)来实现 的,每个子表达式匹配都包含在一个<a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>类型的对象中。
       </p>
@@ -52,7 +51,7 @@
the iterator <a href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a>. Storage for the collection is allocated and freed as necessary by the member functions of class <code class="computeroutput"><span class="identifier">match_results</span></code>.
-        <br />
+        <br>
模板类<code class="computeroutput"><span class="identifier">match_results</span></code>表示一个表达正则表达式匹配结果 的字符序列的集合。 <code class="computeroutput"><span class="identifier">match_results</span></code>类的对象被传入到算法<a href="regex_match.html" title="regex_match"><code class="computeroutput"><span class="identifier">regex_match</span></code></a>和<a href="regex_search.html" title="regex_search"><code class="computeroutput"><span class="identifier">regex_search</span></code></a>中,被迭代器<a href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a>返回。 集合的存储空间在需要时由类<code class="computeroutput"><span class="identifier">match_results</span></code>的成员函数申请和释放。
@@ -61,7 +60,7 @@
The template class <code class="computeroutput"><span class="identifier">match_results</span></code> conforms to the requirements of a Sequence, as specified in (lib.sequence.reqmts), except that only operations defined for const-qualified Sequences are supported.
-        <br />
+        <br>
模板类<code class="computeroutput"><span class="identifier">match_results</span></code>同序列(Sequence)的需求一致,定 义于(lib.sequence.reqmts),除了只支持const序列的操作。
       </p>
 <p>
@@ -69,89 +68,11 @@
is most commonly used as one of the typedefs <code class="computeroutput"><span class="identifier">cmatch</span></code>, <code class="computeroutput"><span class="identifier">wcmatch</span></code>, <code class="computeroutput"><span class="identifier">smatch</span></code>, or <code class="computeroutput"><span class="identifier">wsmatch</span></code>:
-        <br />
+        <br>
类模板<code class="computeroutput"><span class="identifier">match_results</span></code>最经常使用的是下面的typedef之 一, <code class="computeroutput"><span class="identifier">cmatch</span></code>、<code class="computeroutput"><span class="identifier">wcmatch</span></code>、<code class="computeroutput"><span class="identifier">smatch</span></code>或<code class="computeroutput"><span class="identifier">wsmatch</span></code>:
         </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> - <span class="keyword">class</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span> <span class="special">&gt;</span> -<span class="keyword">class</span> <span class="identifier">match_results</span><span class="special">;</span>
-
-<span class="keyword">typedef</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*&gt;</span> <span class="identifier">cmatch</span><span class="special">;</span> -<span class="keyword">typedef</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">wchar_t</span><span class="special">*&gt;</span> <span class="identifier">wcmatch</span><span class="special">;</span> -<span class="keyword">typedef</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">string</span><span class="special">::</span><span class="identifier">const_iterator</span><span class="special">&gt;</span> <span class="identifier">smatch</span><span class="special">;</span> -<span class="keyword">typedef</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">wstring</span><span class="special">::</span><span class="identifier">const_iterator</span><span class="special">&gt;</span> <span class="identifier">wsmatch</span><span class="special">;</span>
-
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> - <span class="keyword">class</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span> <span class="special">&gt;</span> -<span class="keyword">class</span> <span class="identifier">match_results</span>
-<span class="special">{</span>
-<span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">typedef</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span> <span class="identifier">value_type</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&amp;</span> <span class="identifier">const_reference</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">const_reference</span> <span class="identifier">reference</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">implementation</span> <span class="identifier">defined</span> <span class="identifier">const_iterator</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">const_iterator</span> <span class="identifier">iterator</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">difference_type</span> <span class="identifier">difference_type</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span><span class="special">::</span><span class="identifier">size_type</span> <span class="identifier">size_type</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">Allocator</span> <span class="identifier">allocator_type</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="identifier">char_type</span><span class="special">;</span> - <span class="keyword">typedef</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">&gt;</span> <span class="identifier">string_type</span><span class="special">;</span>
-
-   <span class="comment">// construct/copy/destroy:
-</span> <a href="match_results.html#boost_regex.match_results.construct">explicit match_results</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Allocator</span><span class="special">&amp;</span> <span class="identifier">a</span> <span class="special">=</span> <span class="identifier">Allocator</span><span class="special">());</span> - <a href="match_results.html#boost_regex.match_results.copy_construct">match_results</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&amp;</span> <span class="identifier">m</span><span class="special">);</span> - <a href="match_results.html#boost_regex.match_results.assign">match_results&amp; operator=</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&amp;</span> <span class="identifier">m</span><span class="special">);</span> - <span class="special">~</span><span class="identifier">match_results</span><span class="special">();</span>
-
-   <span class="comment">// size:
-</span> <span class="identifier">size_type</span> <a href="match_results.html#boost_regex.match_results.size">size</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">size_type</span> <a href="match_results.html#boost_regex.match_results.max_size">max_size</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> - <span class="keyword">bool</span> <a href="match_results.html#boost_regex.match_results.empty">empty</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
-   <span class="comment">// element access:
-</span> <span class="identifier">difference_type</span> <a href="match_results.html#boost_regex.match_results.length">length</a><span class="special">(</span><span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">difference_type</span> <a href="match_results.html#boost_regex.match_results.position">position</a><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">string_type</span> <a href="match_results.html#boost_regex.match_results.str">str</a><span class="special">(</span><span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">const_reference</span> <a href="match_results.html#boost_regex.match_results.subscript">operator[]</a><span class="special">(</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
-
- <span class="identifier">const_reference</span> <a href="match_results.html#boost_regex.match_results.prefix">prefix</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
-
- <span class="identifier">const_reference</span> <a href="match_results.html#boost_regex.match_results.suffix">suffix</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a href="match_results.html#boost_regex.match_results.begin">begin</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">const_iterator</span> <a href="match_results.html#boost_regex.match_results.end">end</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
-   <span class="comment">// format:
-</span> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">&gt;</span> - <span class="identifier">OutputIterator</span> <a href="match_results.html#boost_regex.match_results.format">format</a><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span> - <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">fmt</span><span class="special">,</span> - <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">format_default</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> - <span class="identifier">string_type</span> <a href="match_results.html#boost_regex.match_results.format2">format</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">fmt</span><span class="special">,</span> - <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">format_default</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
-
- <span class="identifier">allocator_type</span> <a href="match_results.html#boost_regex.match_results.get_allocator">get_allocator</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> - <span class="keyword">void</span> <a href="match_results.html#boost_regex.match_results.swap">swap</a><span class="special">(</span><span class="identifier">match_results</span><span class="special">&amp;</span> <span class="identifier">that</span><span class="special">);</span>
-
-<span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_REGEX_MATCH_EXTRA</span> - <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">value_type</span><span class="special">::</span><span class="identifier">capture_sequence_type</span> <span class="identifier">capture_sequence_type</span><span class="special">;</span> - <span class="keyword">const</span> <span class="identifier">capture_sequence_type</span><span class="special">&amp;</span> <a href="match_results.html#boost_regex.match_results.captures">captures</a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
-<span class="preprocessor">#endif</span>
-
-<span class="special">};</span>
-
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span> -<span class="keyword">bool</span> <a href="match_results.html#boost_regex.match_results.op_eq">operator ==</a> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m1</span><span class="special">,</span> - <span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m2</span><span class="special">);</span> -<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span> -<span class="keyword">bool</span> <a href="match_results.html#boost_regex.match_results.op_ne">operator !=</a> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m1</span><span class="special">,</span> - <span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m2</span><span class="special">);</span>
-
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span> -<span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> - <a href="match_results.html#boost_regex.match_results.op_stream">operator &lt;&lt;</a> <span class="special">(</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span> - <span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">);</span>
-
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span> -<span class="keyword">void</span> <a href="match_results.html#boost_regex.match_results.op_swap">swap</a><span class="special">(</span><span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m1</span><span class="special">,</span> - <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m2</span><span class="special">);</span> +<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span><br> <span class="keyword">class</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span> <span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">match_results</span><span class="special">;</span><br><br><span class="keyword">typedef</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*&gt;</span> <span class="identifier">cmatch</span><span class="special">;</span><br><span class="keyword">typedef</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">wchar_t</span><span class="special">*&gt;</span> <span class="identifier">wcmatch</span><span class="special">;</span><br><span class="keyword">typedef</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">string</span><span class="special">::</span><span class="identifier">const_iterator</span><span class="special">&gt;</span> <span class="identifier">smatch</span><span class="special">;</span><br><span class="keyword">typedef</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">wstring</span><span class="special">::</span><span class="identifier">const_iterator</span><span class="special">&gt;</span> <span class="identifier">wsmatch</span><span class="special">;</span><br><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span><br> <span class="keyword">class</span> <span class="identifier">Allocator</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span> <span class="special">&gt;</span><br><span class="keyword">class</span> <span class="identifier">match_results</span><br><span class="special">{</span> <br><span class="keyword">public</span><span class="special">:</span> <br> <span class="keyword">typedef</span> <span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span> <span class="identifier">value_type</span><span class="special">;</span><br> <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="identifier">value_type</span><span class="special">&amp;</span> <span class="identifier">const_reference</span><span class="special">;</span><br> <span class="keyword">typedef</span> <span class="identifier">const_reference</span> <span class="identifier">reference</span><span class="special">;</span><br> <span class="keyword">typedef</span> <span class="identifier">implementation</span> <span class="identifier">defined</span> <span class="identifier">const_iterator</span><span class="special">;</span><br> <span class="keyword">typedef</span> <span class="identifier">const_iterator</span> <span class="identifier">iterator</span><span class="special">;</span><br> <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">difference_type</span> <span class="identifier">difference_type</span><span class="special">;</span><br> <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span><span class="special">::</span><span class="identifier">size_type</span> <span class="identifier">size_type</span><span class="special">;</span><br> <span class="keyword">typedef</span> <span class="identifier">Allocator</span> <span class="identifier">allocator_type</span><span class="special">;</span><br> <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="identifier">char_type</span><span class="special">;</span><br> <span class="keyword">typedef</span> <span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">&gt;</span> <span class="identifier">string_type</span><span class="special">;</span><br><br> <span class="comment">// construct/copy/destroy:<br></span> <a class="link" href="match_results.html#boost_regex.match_results.construct">explicit match_results</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Allocator</span><span class="special">&amp;</span> <span class="identifier">a</span> <span class="special">=</span> <span class="identifier">Allocator</span><span class="special">());</span><br> <a class="link" href="match_results.html#boost_regex.match_results.copy_construct">match_results</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&amp;</span> <span class="identifier">m</span><span class="special">);</span><br> <a class="link" href="match_results.html#boost_regex.match_results.assign">match_results&amp; operator=</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&amp;</span> <span class="identifier">m</span><span class="special">);</span> <br> <span class="special">~</span><span class="identifier">match_results</span><span class="special">();</span><br><br> <span class="comment">// size:<br></span> <span class="identifier">size_type</span> <a class="link" href="match_results.html#boost_regex.match_results.size">size</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="identifier">size_type</span> <a class="link" href="match_results.html#boost_regex.match_results.max_size">max_size</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="keyword">bool</span> <a class="link" href="match_results.html#boost_regex.match_results.empty">empty</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="comment">// element access:<br></span> <span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.length">length</a><span class="special">(</span><span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.length">length</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span><br> <span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.length">length</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span><br> <span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.length">length</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;&amp;</span> <span class="identifier">sub</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.position">position</a><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.position">position</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span><br> <span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.position">position</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span><br> <span class="identifier">difference_type</span> <a class="link" href="match_results.html#boost_regex.match_results.position">position</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;&amp;</span> <span class="identifier">sub</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="identifier">string_type</span> <a class="link" href="match_results.html#boost_regex.match_results.str">str</a><span class="special">(</span><span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="identifier">string_type</span> <a class="link" href="match_results.html#boost_regex.match_results.str">str</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span><br> <span class="identifier">string_type</span> <a class="link" href="match_results.html#boost_regex.match_results.str">str</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;&amp;</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span><br> <span class="identifier">string_type</span> <a class="link" href="match_results.html#boost_regex.match_results.str">str</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span><br> <span class="identifier">string_type</span> <a class="link" href="match_results.html#boost_regex.match_results.str">str</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;&amp;</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br> <span class="identifier">const_reference</span> <a class="link" href="match_results.html#boost_regex.match_results.subscript">operator[]</a><span class="special">(</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="identifier">const_reference</span> <a class="link" href="match_results.html#boost_regex.match_results.subscript">operator[]</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span><br> <span class="identifier">const_reference</span> <a class="link" href="match_results.html#boost_regex.match_results.subscript">operator[]</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;&amp;</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span><br> <span class="identifier">const_reference</span> <a class="link" href="match_results.html#boost_regex.match_results.subscript">operator[]</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span><br> <span class="identifier">const_reference</span> <a class="link" href="match_results.html#boost_regex.match_results.subscript">operator[]</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;&amp;</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br><br> <span class="identifier">const_reference</span> <a class="link" href="match_results.html#boost_regex.match_results.prefix">prefix</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span><br><br> <span class="identifier">const_reference</span> <a class="link" href="match_results.html#boost_regex.match_results.suffix">suffix</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="identifier">const_iterator</span> <a class="link" href="match_results.html#boost_regex.match_results.begin">begin</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="identifier">const_iterator</span> <a class="link" href="match_results.html#boost_regex.match_results.end">end</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="comment">// format:<br></span> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">&gt;</span><br> <span class="identifier">OutputIterator</span> <a class="link" href="match_results.html#boost_regex.match_results.format">format</a><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span><br> <span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">fmt</span><span class="special">,</span><br> <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">format_default</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="identifier">string_type</span> <a class="link" href="match_results.html#boost_regex.match_results.format2">format</a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">string_type</span><span class="special">&amp;</span> <span class="identifier">fmt</span><span class="special">,</span><br> <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">format_default</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br><br> <span class="identifier">allocator_type</span> <a class="link" href="match_results.html#boost_regex.match_results.get_allocator">get_allocator</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span><br> <span class="keyword">void</span> <a class="link" href="match_results.html#boost_regex.match_results.swap">swap</a><span class="special">(</span><span class="identifier">match_results</span><span class="special">&amp;</span> <span class="identifier">that</span><span class="special">);</span><br><br><span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_REGEX_MATCH_EXTRA</span><br> <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">value_type</span><span class="special">::</span><span class="identifier">capture_sequence_type</span> <span class="identifier">capture_sequence_type</span><span class="special">;</span><br> <span class="keyword">const</span> <span class="identifier">capture_sequence_type</span><span class="special">&amp;</span> <a class="link" href="match_results.html#boost_regex.match_results.captures">captures</a><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br><span class="preprocessor">#endif</span><br><br><span class="special">};</span><br><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span><br><span class="keyword">bool</span> <a class="link" href="match_results.html#boost_regex.match_results.op_eq">operator ==</a> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m1</span><span class="special">,</span><br> <span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m2</span><span class="special">);</span><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span><br><span class="keyword">bool</span> <a class="link" href="match_results.html#boost_regex.match_results.op_ne">operator !=</a> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m1</span><span class="special">,</span><br> <span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m2</span><span class="special">);</span><br><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span><br><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span><br> <a class="link" href="match_results.html#boost_regex.match_results.op_stream">operator &lt;&lt;</a> <span class="special">(</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="identifier">os</span><span class="special">,</span><br> <span class="keyword">const</span> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m</span><span class="special">);</span><br><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">&gt;</span><br><span class="keyword">void</span> <a class="link" href="match_results.html#boost_regex.match_results.op_swap">swap</a><span class="special">(</span><span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m1</span><span class="special">,</span><br> <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m2</span><span class="special">);</span><span class="special"></span>
 </pre>
 <a name="boost_regex.ref.match_results.description"></a><h5>
 <a name="id544746"></a>
@@ -161,7 +82,7 @@
In all <code class="computeroutput"><span class="identifier">match_results</span></code> constructors, a copy of the Allocator argument is used for any memory allocation performed by the constructor or member functions during the lifetime of the object.
-        <br />
+        <br>
在<code class="computeroutput"><span class="identifier">match_results</span></code>的所有构造函数中, Allocator参数的拷贝应用于对象生命周期中构造或成员函数需要的内存分 配。
       </p>
@@ -175,10 +96,7 @@
         of this function are indicated in the table:
       </p>
 <div class="informaltable"><table class="table">
-<colgroup>
-<col>
-<col>
-</colgroup>
+<colgroup><col><col></colgroup>
 <thead><tr>
 <th>
               <p>
@@ -247,10 +165,7 @@
         of this function are indicated in the table:
       </p>
 <div class="informaltable"><table class="table">
-<colgroup>
-<col>
-<col>
-</colgroup>
+<colgroup><col><col></colgroup>
 <thead><tr>
 <th>
               <p>
@@ -370,7 +285,7 @@
<span class="bold"><strong>Effects</strong></span>: Returns the number of <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a> elements stored in *this; that is the number of marked sub-expressions in the regular expression that
         was matched plus one.
-        <br />
+        <br>
<span class="bold"><strong>效果</strong></span>:返回*this中夏令的 <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>元素的数量;
         等于正则表达式中标记子表达式的数量加上1。
       </p>
@@ -388,59 +303,83 @@
<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
- <span class="bold"><strong>Effects</strong></span>: Returns size() == 0.
-      </p>
-<a name="boost_regex.match_results.length"></a><p>
-      </p>
-<pre class="programlisting"><span class="identifier">difference_type</span> <span class="identifier">length</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span> + <span class="bold"><strong>Effects</strong></span>: Returns size() == 0.</p><a name="boost_regex.match_results.length"></a> +<p></p><pre class="programlisting"><span class="identifier">difference_type</span> <span class="identifier">length</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br><span class="identifier">difference_type</span> <span class="identifier">length</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span><br><span class="identifier">difference_type</span> <span class="identifier">length</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span><br><span class="identifier">difference_type</span> <span class="identifier">length</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;&amp;)</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
-<p>
- <span class="bold"><strong>Effects</strong></span>: Returns the length of sub-expression - <span class="emphasis"><em>sub</em></span>, that is to say: <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="identifier">sub</span><span class="special">].</span><span class="identifier">length</span><span class="special">()</span></code>.
-      </p>
-<a name="boost_regex.match_results.position"></a><p>
-      </p>
-<pre class="programlisting"><span class="identifier">difference_type</span> <span class="identifier">position</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span> +<p><span class="bold"><strong>Effects</strong></span>: Returns the length of +sub-expression <span class="emphasis"><em>sub</em></span>, that is to say: <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="identifier">sub</span><span class="special">].</span><span class="identifier">length</span><span class="special">()</span></code>. </p> +<p>The overloads that accept a string refer to a named sub-expression <span class="emphasis"><em>n</em></span>. In the event that there is no such named
+sub-expression then returns an empty string. </p>
+<p>The template overloads of this function, allow the string and/or character +type to be different from the character type of the underlying sequence and/or
+regular expression: in this case the characters will be widened to the
+underlying character type of the original regular expression. A compiler error +will occur if the argument passes a wider character type than the underlying +sequence. These overloads allow a normal narrow character C string literal to be +used as an argument, even when the underlying character type of the expression +being matched may be something more exotic such as a Unicode character type.
+</p><p></p><a name="boost_regex.match_results.position"></a>
+<p></p><pre class="programlisting"><span class="identifier">difference_type</span> <span class="identifier">position</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br><span class="identifier">difference_type</span> <span class="identifier">position</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span><br><span class="identifier">difference_type</span> <span class="identifier">position</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span><br><span class="identifier">difference_type</span> <span class="identifier">position</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;&amp;)</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
-<p>
- <span class="bold"><strong>Effects</strong></span>: Returns the starting location of - sub-expression <span class="emphasis"><em>sub</em></span>, or -1 if <span class="emphasis"><em>sub</em></span> - was not matched. Note that if this represents a partial match , then <code class="computeroutput"><span class="identifier">position</span><span class="special">()</span></code> - will return the location of the partial match even though <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">0</span><span class="special">].</span><span class="identifier">matched</span></code>
-        is false.
-        <br />
+<p><span class="bold"><strong>Effects</strong></span>: Returns the starting
+location of sub-expression <span class="emphasis"><em>sub</em></span>, or -1 if +<span class="emphasis"><em>sub</em></span> was not matched. Note that if this +represents a partial match , then <code class="computeroutput"><span class="identifier">position</span><span class="special">()</span></code> will return +the location of the partial match even though <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">0</span><span class="special">].</span><span class="identifier">matched</span></code> is false.<br> <span class="bold"><strong>效果</strong></span>:返回子表达式<span class="emphasis"><em>sub</em></span>的开始位置,如果没有匹配则返回-1。 - 注意,如果这表示一个部分匹配,即使<code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">0</span><span class="special">].</span><span class="identifier">matched</span></code>值为false,<code class="computeroutput"><span class="identifier">position</span><span class="special">()</span></code>也会返回部分匹配的位置。
-      </p>
-<a name="boost_regex.match_results.str"></a><p>
-      </p>
-<pre class="programlisting"><span class="identifier">string_type</span> <span class="identifier">str</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span> + 注意,如果这表示一个部分匹配,即使<code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)[</span><span class="number">0</span><span class="special">].</span><span class="identifier">matched</span></code>值为false,<code class="computeroutput"><span class="identifier">position</span><span class="special">()</span></code>也会返回部分匹配的位置。
+</p>
+<p>The overloads that accept a string refer to a named sub-expression <span class="emphasis"><em>n</em></span>. In the event that there is no such named
+sub-expression then returns an empty string. </p>
+<p>The template overloads of this function, allow the string and/or character +type to be different from the character type of the underlying sequence and/or
+regular expression: in this case the characters will be widened to the
+underlying character type of the original regular expression. A compiler error +will occur if the argument passes a wider character type than the underlying +sequence. These overloads allow a normal narrow character C string literal to be +used as an argument, even when the underlying character type of the expression +being matched may be something more exotic such as a Unicode character type.
+</p><a name="boost_regex.match_results.str"></a>
+<p></p><pre class="programlisting"><span class="identifier">string_type</span> <span class="identifier">str</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">sub</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br><span class="identifier">string_type</span> <span class="identifier">str</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span><br><span class="identifier">string_type</span> <span class="identifier">str</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;&amp;</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span><br><span class="identifier">string_type</span> <span class="identifier">str</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span><br><span class="identifier">string_type</span> <span class="identifier">str</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;&amp;</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
-<p>
- <span class="bold"><strong>Effects</strong></span>: Returns sub-expression <span class="emphasis"><em>sub</em></span> - as a string: <code class="computeroutput"><span class="identifier">string_type</span><span class="special">((*</span><span class="keyword">this</span><span class="special">)[</span><span class="identifier">sub</span><span class="special">])</span></code>.
-        <br />
- <span class="bold"><strong>效果</strong></span>:将子表达式<span class="emphasis"><em>sub</em></span>作为字符串返回:<code class="computeroutput"><span class="identifier">string_type</span><span class="special">((*</span><span class="keyword">this</span><span class="special">)[</span><span class="identifier">sub</span><span class="special">])</span></code>。
-      </p>
-<a name="boost_regex.match_results.subscript"></a><p>
-      </p>
-<pre class="programlisting"><span class="identifier">const_reference</span> <span class="keyword">operator</span><span class="special">[](</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> +<p><span class="bold"><strong>Effects</strong></span>: Returns sub-expression +<span class="emphasis"><em>sub</em></span> as a string: <code class="computeroutput"><span class="identifier">string_type</span><span class="special">((*</span><span class="keyword">this</span><span class="special">)[</span><span class="identifier">sub</span><span class="special">])</span></code>.<br> + <span class="bold"><strong>效果</strong></span>:将子表达式<span class="emphasis"><em>sub</em></span>作为字符串返回:<code class="computeroutput"><span class="identifier">string_type</span><span class="special">((*</span><span class="keyword">this</span><span class="special">)[</span><span class="identifier">sub</span><span class="special">])</span></code>。 </p> +<p>The overloads that accept a string, return the string that matched the named +sub-expression <span class="emphasis"><em>n</em></span>. In the event that there
+is no such named sub-expression then returns an empty string. </p>
+<p>The template overloads of this function, allow the string and/or character +type to be different from the character type of the underlying sequence and/or
+regular expression: in this case the characters will be widened to the
+underlying character type of the original regular expression. A compiler error +will occur if the argument passes a wider character type than the underlying +sequence. These overloads allow a normal narrow character C string literal to be +used as an argument, even when the underlying character type of the expression +being matched may be something more exotic such as a Unicode character type.
+</p><a name="boost_regex.match_results.subscript"></a>
+<p></p><pre class="programlisting"><span class="identifier">const_reference</span> <span class="keyword">operator</span><span class="special">[](</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br><span class="identifier">const_reference</span> <span class="keyword">operator</span><span class="special">[](</span><span class="keyword">const</span> <span class="identifier">char_type</span><span class="special">*</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span><br><span class="identifier">const_reference</span> <span class="keyword">operator</span><span class="special">[](</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">char_type</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;&amp;</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span><br><span class="identifier">const_reference</span> <span class="keyword">operator</span><span class="special">[](</span><span class="keyword">const</span> <span class="identifier">charT</span><span class="special">*</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span><br><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A</span><span class="special">&gt;</span><br><span class="identifier">const_reference</span> <span class="keyword">operator</span><span class="special">[](</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span> <span class="identifier">Traits</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;&amp;</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
 </pre>
-<p>
- <span class="bold"><strong>Effects</strong></span>: Returns a reference to the <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a> - object representing the character sequence that matched marked sub-expression - <span class="emphasis"><em>n</em></span>. If <code class="computeroutput"><span class="identifier">n</span> <span class="special">==</span> <span class="number">0</span></code> then returns - a reference to a <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a> object representing the - character sequence that matched the whole regular expression. If <span class="emphasis"><em>n</em></span> - is out of range, or if <span class="emphasis"><em>n</em></span> is an unmatched sub-expression, - then returns a <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>
-        object whose matched member is false.
-        <br />
+<p><span class="bold"><strong>Effects</strong></span>: Returns a reference to the +<a class="link" title="sub_match" href="sub_match.html"><code class="computeroutput"><span class="identifier">sub_match</span></code></a> object +representing the character sequence that matched marked sub-expression <span class="emphasis"><em>n</em></span>. If <code class="computeroutput"><span class="identifier">n</span> <span class="special">==</span> <span class="number">0</span></code> then returns a reference to a <a class="link" title="sub_match" href="sub_match.html"><code class="computeroutput"><span class="identifier">sub_match</span></code></a> object representing the character +sequence that matched the whole regular expression. If <span class="emphasis"><em>n</em></span> is out of range, or if <span class="emphasis"><em>n</em></span> is an unmatched sub-expression, then returns a +<a class="link" title="sub_match" href="sub_match.html"><code class="computeroutput"><span class="identifier">sub_match</span></code></a> object
+whose matched member is false.<br>
<span class="bold"><strong>效果</strong></span>:返回表示标记子表达 式<span class="emphasis"><em>n</em></span>匹配的字符序列的<a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>的对象的引用。 如果<code class="computeroutput"><span class="identifier">n</span> <span class="special">==</span> <span class="number">0</span></code>,则返回 表示匹配整个正则表达式的字符序列的<a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>的对象的引用。 - 如果<span class="emphasis"><em>n</em></span>越界,或者<span class="emphasis"><em>n</em></span>是一个未匹配的子表达式,则返回一个<a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>对象,其matched成员是false。
-      </p>
-<a name="boost_regex.match_results.prefix"></a><p>
+ 如果<span class="emphasis"><em>n</em></span>越界,或者<span class="emphasis"><em>n</em></span>是一个未匹配的子表达式,则返回一个<a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>对象,其matched成员是false。 </p> +<p>The overloads that accept a string, return a reference to the <a class="link" title="sub_match" href="sub_match.html"><code class="computeroutput"><span class="identifier">sub_match</span></code></a> object representing the character +sequence that matched the named sub-expression <span class="emphasis"><em>n</em></span>. In the event that there is no such named +sub-expression then returns a <a class="link" title="sub_match" href="sub_match.html"><code class="computeroutput"><span class="identifier">sub_match</span></code></a> object whose matched member is
+false. </p>
+<p>The template overloads of this function, allow the string and/or character +type to be different from the character type of the underlying sequence and/or
+regular expression: in this case the characters will be widened to the
+underlying character type of the original regular expression. A compiler error +will occur if the argument passes a wider character type than the underlying +sequence. These overloads allow a normal narrow character C string literal to be +used as an argument, even when the underlying character type of the expression +being matched may be something more exotic such as a Unicode character type.</p><a name="boost_regex.match_results.prefix"></a><p>
       </p>
<pre class="programlisting"><span class="identifier">const_reference</span> <span class="identifier">prefix</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
@@ -448,7 +387,7 @@
<span class="bold"><strong>Effects</strong></span>: Returns a reference to the <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a> object representing the character sequence from the start of the string being
         matched or searched, to the start of the match found.
-        <br />
+        <br>
<span class="bold"><strong>效果</strong></span>:返回一个<a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>对象的引用,这个对象表示从要进 行匹配或搜索的字符串的开始,到匹配的开始之间的字符序列。
       </p>
 <a name="boost_regex.match_results.suffix"></a><p>
@@ -459,7 +398,7 @@
<span class="bold"><strong>Effects</strong></span>: Returns a reference to the <a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a> object representing the character sequence from the end of the match found
         to the end of the string being matched or searched.
-        <br />
+        <br>
<span class="bold"><strong>效果</strong></span>:返回一个<a href="sub_match.html" title="sub_match"><code class="computeroutput"><span class="identifier">sub_match</span></code></a>对象的引用,这个对象表示从匹配 的结束,到用于匹配或搜索的字符串的结束之间的字符序列。
       </p>
 <a name="boost_regex.match_results.begin"></a><p>
@@ -469,7 +408,7 @@
 <p>
<span class="bold"><strong>Effects</strong></span>: Returns a starting iterator that enumerates over all the marked sub-expression matches stored in *this.
-        <br />
+        <br>
<span class="bold"><strong>效果</strong></span>:返回用于遍历 *this存储的所有标记子表达式匹配的起始迭代器。
       </p>
 <a name="boost_regex.match_results.end"></a><p>
@@ -501,7 +440,7 @@
in flags determines what format specifiers or escape sequences are recognized, by default this is the format used by ECMA-262, ECMAScript Language Specification,
         Chapter 15 part 5.4.11 String.prototype.replace.
-        <br />
+        <br>
<span class="bold"><strong>效果</strong></span>:将字符序列<code class="computeroutput"><span class="special">[</span><span class="identifier">fmt</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">fmt</span><span class="special">.</span><span class="identifier">end</span><span class="special">())</span></code>拷贝到 <code class="computeroutput"><span class="identifier">OutputIterator</span></code> <span class="emphasis"><em>out</em></span>。 对于<span class="emphasis"><em>fmt</em></span>中每个格式说明 (format specifier)或转义序列,用它表示的字符(串),或它指向的<code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>中的字符序列来替换它。
         flags中指明的位掩码决定了哪些格式说明和转义序列被识别,
@@ -562,19 +501,18 @@
a standard library Sequence (21.1.1 including the optional Table 68 operations), whose value_type is a <code class="computeroutput"><span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span></code>. This type happens to be <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span> <span class="special">&gt;</span></code>,
         but you shouldn't actually rely on that.
-        <br />
+        <br>
定义一个实现决定的满足标准库序列(Sequence)需求(21.1.1 包括可选表的 68个操作 including the optional Table 68 operations)的类型, 其中value_type是<code class="computeroutput"><span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span></code>。 这个类型可能是<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">sub_match</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">&gt;</span> <span class="special">&gt;</span></code>,但你不 能依赖于这个。
       </p>
 <a name="boost_regex.match_results.captures"></a><p>
       </p>
-<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">capture_sequence_type</span><span class="special">&amp;</span> <span class="identifier">captures</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
-</pre>
+<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">capture_sequence_type</span><span class="special">&amp;</span> <span class="identifier">captures</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span> <br></pre>
 <p>
<span class="bold"><strong>Effects</strong></span>: returns a sequence containing all
         the captures obtained for sub-expression i.
-        <br />
+        <br>
<span class="bold"><strong>效果</strong></span>:返回包含子表达式 i的所有捕捉的序列。
       </p>
 <p>
@@ -585,34 +523,34 @@
and used with BOOST_REGEX_MATCH_EXTRA defined, and you must pass the flag match_extra to the regex matching functions ( <a href="regex_match.html" title="regex_match"><code class="computeroutput"><span class="identifier">regex_match</span></code></a>, <a href="regex_search.html" title="regex_search"><code class="computeroutput"><span class="identifier">regex_search</span></code></a>, <a href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a> or <a href="regex_token_iterator.html" title="regex_token_iterator"><code class="computeroutput"><span class="identifier">regex_token_iterator</span></code></a>) in order for
         this member function to be defined and return useful information.
-        <br />
+        <br>
<span class="bold"><strong>前置条件</strong></span>:库必须用 BOOST_REGEX_MATCH_EXTRA编译生成,同时必须将标签match_extra传入正则表达式匹配 函数中(<a href="regex_match.html" title="regex_match"><code class="computeroutput"><span class="identifier">regex_match</span></code></a>、<a href="regex_search.html" title="regex_search"><code class="computeroutput"><span class="identifier">regex_search</span></code></a>、<a href="regex_iterator.html" title="regex_iterator"><code class="computeroutput"><span class="identifier">regex_iterator</span></code></a>或<a href="regex_token_iterator.html" title="regex_token_iterator"><code class="computeroutput"><span class="identifier">regex_token_iterator</span></code></a>),
         这样这个成员函数才被定义并且返回有意义的信息。
       </p>
 <p>
<span class="bold"><strong>Rationale</strong></span>: Enabling this feature has several
         consequences:
-        <br />
+        <br>
<span class="bold"><strong>解释</strong></span>:打开这个特性会有一 些后果:
       </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
sub_match occupies more memory resulting in complex expressions running
           out of memory or stack space more quickly during matching.
-          <br />
+          <br>
sub_match占用更多内存,导致在匹配复杂表达式时更容易出现内存或栈空 间不足。
         </li>
 <li>
The matching algorithms are less efficient at handling some features (independent
           sub-expressions for example), even when match_extra is not used.
-          <br />
+          <br>
匹配算法在处理某些特性(例如独立子表达式 independent sub-expression)时会比较低效,即使match_extra标签没被设置。
         </li>
 <li>
The matching algorithms are much less efficient (i.e. slower), when match_extra is used. Mostly this is down to the extra memory allocations that have
           to take place.
-          <br />
+          <br>
使用match_extra标签时,匹配算法会更加低效(慢)。这主要是由于更多的 内存申请发生。
         </li>
 </ul></div>
@@ -659,17 +597,16 @@
<span class="bold"><strong>Effects</strong></span>: Swaps the contents of the two sequences.
       </p>
 </div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr> +<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr>
 <td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 1998 -2007 John Maddock<p> Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
       </p>
 </div></td>
-</tr></table>
+</tr></tbody></table>
 <hr>
 <div class="spirit-nav">
<a accesskey="p" href="basic_regex.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ref.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="sub_match.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html Sun Oct 5 19:30:35 2008 +++ /trunk/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html Sat Sep 12 00:52:19 2009
@@ -1,1599 +1,1356 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>Perl Regular Expression Syntax</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css"> -<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
-<link rel="start" href="../../index.html" title="Boost.Regex">
-<link rel="up" href="../syntax.html" title="Regular Expression Syntax">
-<link rel="prev" href="../syntax.html" title="Regular Expression Syntax">
-<link rel="next" href="basic_extended.html" title="POSIX Extended Regular Expression Syntax">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+<meta content="text/html; charset=utf-8" http-equiv="Content-Type"><title>Perl Regular Expression Syntax</title>
+
+<link type="text/css" href="../../../../../../doc/html/boostbook.css" rel="stylesheet"> +<meta content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120" name="generator">
+<link title="Boost.Regex" href="../../index.html" rel="start">
+<link title="Regular Expression Syntax" href="../syntax.html" rel="up">
+<link title="Regular Expression Syntax" href="../syntax.html" rel="prev">
+<link title="POSIX Extended Regular Expression Syntax" href="basic_extended.html" rel="next">
 </head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td> +<body style="color: black; background-color: white;" alink="#0000ff" link="#0000ff" vlink="#840084">
+<table cellpadding="2" width="100%">
+<tbody>
+<tr>
+<td valign="top"><img alt="Boost C++ Libraries" src="../../../../../../boost.png" height="86" width="277"></td>
 <td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
 <td align="center"><a href="../../../../../../more/index.htm">More</a></td>
-</tr></table>
+</tr>
+</tbody>
+</table>
 <hr>
-<div class="spirit-nav">
-<a accesskey="p" href="../syntax.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../syntax.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="basic_extended.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<div class="spirit-nav"><a accesskey="p" href="../syntax.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../syntax.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="basic_extended.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_regex.syntax.perl_syntax"></a><a href="perl_syntax.html" title="Perl Regular Expression Syntax"> Perl Regular Expression
-      Syntax</a>
-</h3></div></div></div>
-<a name="boost_regex.syntax.perl_syntax.synopsis"></a><h4>
-<a name="id507610"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.synopsis">Synopsis</a>
-      </h4>
-<p>
- The Perl regular expression syntax is based on that used by the programming - language Perl . Perl regular expressions are the default behavior in Boost.Regex - or you can pass the flag <code class="computeroutput"><span class="identifier">perl</span></code> - to the <a href="../ref/basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a>
-        constructor, for example:
-        <br />
-        Perl正则表达式语法基于编程语言Perl的使用。
- Perl正则表达式是Boost.Regex的默认行为,或者你可以将<code class="computeroutput"><span class="identifier">perl</span></code>标记传入 <a href="../ref/basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a>的构造,例如:
-      </p>
-<pre class="programlisting"><span class="comment">// e1 is a case sensitive Perl regular expression: -</span><span class="comment">// since Perl is the default option there's no need to explicitly specify the syntax used here: -</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span> <span class="identifier">e1</span><span class="special">(</span><span class="identifier">my_expression</span><span class="special">);</span>
-<span class="comment">// e2 a case insensitive Perl regular expression:
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span> <span class="identifier">e2</span><span class="special">(</span><span class="identifier">my_expression</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span><span class="special">::</span><span class="identifier">perl</span><span class="special">|</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span><span class="special">::</span><span class="identifier">icase</span><span class="special">);</span>
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title"><a name="boost_regex.syntax.perl_syntax"></a><a href="perl_syntax.html" title="Perl Regular Expression Syntax">
+Perl Regular Expression Syntax</a>
+</h3>
+</div>
+</div>
+</div>
+<a name="boost_regex.syntax.perl_syntax.synopsis"></a>
+<h4><a name="id507610"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.synopsis">Synopsis</a>
+</h4>
+<p> The Perl regular expression syntax is based on that used by
+the programming language Perl . Perl regular expressions are the
+default behavior in Boost.Regex or you can pass the flag <code class="computeroutput"><span class="identifier">perl</span></code> +to the <a href="../ref/basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a>
+constructor, for example: <br>
+Perl正则表达式语法基于编程语言Perl的使用。 Perl正则表达式是Boost.Regex的默 认行为,或者你可以将<code class="computeroutput"><span class="identifier">perl</span></code>标 +记传入<a href="../ref/basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a>的
+构造,例如: </p>
+<pre class="programlisting"><span class="comment">// e1 is a case sensitive Perl regular expression: <br></span><span class="comment">// since Perl is the default option there's no need to explicitly specify the syntax used here:<br></span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span> <span class="identifier">e1</span><span class="special">(</span><span class="identifier">my_expression</span><span class="special">);</span><br><span class="comment">// e2 a case insensitive Perl regular expression:<br></span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span> <span class="identifier">e2</span><span class="special">(</span><span class="identifier">my_expression</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span><span class="special">::</span><span class="identifier">perl</span><span class="special">|</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span><span class="special">::</span><span class="identifier">icase</span><span class="special">);</span>
 </pre>
-<a name="boost_regex.syntax.perl_syntax.perl_regular_expression_syntax"></a><h4>
-<a name="id507832"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.perl_regular_expression_syntax">Perl
-        Regular Expression Syntax</a>
-      </h4>
-<p>
- In Perl regular expressions, all characters match themselves except for the
-        following special characters:
-        <br />
-        在Perl正则表达式中,除了下面的特殊字符外,所有的字符都匹配自己:
-      </p>
+<a name="boost_regex.syntax.perl_syntax.perl_regular_expression_syntax"></a> +<h4><a name="id507832"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.perl_regular_expression_syntax">Perl
+Regular Expression Syntax</a> </h4>
+<p> In Perl regular expressions, all characters match themselves
+except for the following special characters: <br>
+在Perl正则表达式中,除了下面的特殊字符外,所有的字符都匹配自己: </p>
 <pre class="programlisting">.[{()\*+?|^$</pre>
-<a name="boost_regex.syntax.perl_syntax.wildcard"></a><h5>
-<a name="id507869"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.wildcard">Wildcard 通 配符</a>
-      </h5>
-<p>
- The single character '.' when used outside of a character set will match
-        any single character except:
-        <br />
-        单字符'.'在字符集(character set)外使用时可以匹配任意单字符除了:
-      </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
- The NULL character when the <a href="../ref/match_flag_type.html" title="match_flag_type">flag - <code class="computeroutput"><span class="identifier">match_not_dot_null</span></code></a>
-          is passed to the matching algorithms.
-          <br />
- NULL字符当<a href="../ref/match_flag_type.html" title="match_flag_type">标记(flag)<code class="computeroutput"><span class="identifier">match_not_dot_null</span></code></a>被传入匹配算法中。
-        </li>
-<li>
- The newline character when the <a href="../ref/match_flag_type.html" title="match_flag_type">flag - <code class="computeroutput"><span class="identifier">match_not_dot_newline</span></code></a>
-          is passed to the matching algorithms.
-          <br />
- 换行字符当<a href="../ref/match_flag_type.html" title="match_flag_type">标记(flag)<code class="computeroutput"><span class="identifier">>match_not_dot_newline</span></code></a>被传入匹配算法 中。
-        </li>
-</ul></div>
-<a name="boost_regex.syntax.perl_syntax.anchors"></a><h5>
-<a name="id507950"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.anchors">Anchors 锚点 </a>
-      </h5>
-<p>
-        A '^' character shall match the start of a line.
-        <br />
-        '^'字符会匹配行的起始。
-      </p>
-<p>
-        A '$' character shall match the end of a line.
-        <br />
-        '$'字符会匹配行的终止。
-      </p>
-<a name="boost_regex.syntax.perl_syntax.marked_sub_expressions"></a><h5>
-<a name="id507984"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.marked_sub_expressions">Marked
-        sub-expressions 标记子表达式</a>
-      </h5>
-<p>
- A section beginning <code class="computeroutput"><span class="special">(</span></code> and ending - <code class="computeroutput"><span class="special">)</span></code> acts as a marked sub-expression. - Whatever matched the sub-expression is split out in a separate field by the - matching algorithms. Marked sub-expressions can also repeated, or referred
-        to by a back-reference.
-        <br />
- 开始的<code class="computeroutput"><span class="special">(</span></code>和终止的<code class="computeroutput"><span class="special">)</span></code>部分是标记子表达式。
-        匹配算法会将子表达式匹配的部分分离成独立的部分。
-        标记子表达式也可以被重复,或后向引用(back-reference)。
-      </p>
-<a name="boost_regex.syntax.perl_syntax.non_marking_grouping"></a><h5>
-<a name="id508040"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.non_marking_grouping">Non-marking
-        grouping 非标记组</a>
-      </h5>
-<p>
- A marked sub-expression is useful to lexically group part of a regular expression, - but has the side-effect of spitting out an extra field in the result. As - an alternative you can lexically group part of a regular expression, without - generating a marked sub-expression by using <code class="computeroutput"><span class="special">(?:</span></code> - and <code class="computeroutput"><span class="special">)</span></code> , for example <code class="computeroutput"><span class="special">(?:</span><span class="identifier">ab</span><span class="special">)+</span></code> - will repeat <code class="computeroutput"><span class="identifier">ab</span></code> without splitting
-        out any separate sub-expressions.
-        <br />
- 标记子表达式对于正则表达式中的成组文字部分是非常有用的,但将结果分 组是有副作用的。 - 作为选择,可以通过<code class="computeroutput"><span class="special">(?:</span></code>和<code class="computeroutput"><span class="special">)</span></code>产生文字分组,但不产生标记子表达式, - 例如<code class="computeroutput"><span class="special">(?:</span><span class="identifier">ab</span><span class="special">)+</span></code>会重复<code class="computeroutput"><span class="identifier">ab</span></code>但并不分隔出单独的子表达式。
-      </p>
-<a name="boost_regex.syntax.perl_syntax.repeats"></a><h5>
-<a name="id508128"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.repeats">Repeats 重复 </a>
-      </h5>
-<p>
- Any atom (a single character, a marked sub-expression, or a character class) - can be repeated with the <code class="computeroutput"><span class="special">*</span></code>, - <code class="computeroutput"><span class="special">+</span></code>, <code class="computeroutput"><span class="special">?</span></code>, - and <code class="computeroutput"><span class="special">{}</span></code> operators.
-        <br />
- 任意原子(单个字符,一个标记子表达式或一个字符组)可以通过<code class="computeroutput"><span class="special">*</span></code>、<code class="computeroutput"><span class="special">+</span></code><code class="computeroutput"><span class="special">?</span></code>和<code class="computeroutput"><span class="special">{}</span></code>操作符重复。
-      </p>
-<p>
- The <code class="computeroutput"><span class="special">*</span></code> operator will match the - preceding atom zero or more times, for example the expression <code class="computeroutput"><span class="identifier">a</span><span class="special">*</span><span class="identifier">b</span></code>
-        will match any of the following:
-        <br />
- <code class="computeroutput"><span class="special">*</span></code>操作符会匹配前面的原子零次或多次, - 例如表达式<code class="computeroutput"><span class="identifier">a</span><span class="special">*</span><span class="identifier">b</span></code>可以匹配下面的:
-      </p>
-<pre class="programlisting"><span class="identifier">b</span>
-<span class="identifier">ab</span>
-<span class="identifier">aaaaaaaab</span>
+<a name="boost_regex.syntax.perl_syntax.wildcard"></a>
+<h5><a name="id507869"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.wildcard">Wildcard
+通配符</a> </h5>
+<p> The single character '.' when used outside of a character set
+will match any single character except: <br>
+单字符'.'在字符集(character set)外使用时可以匹配任意单字符除了: </p>
+<div class="itemizedlist">
+<ul type="disc">
+<li> The NULL character when the <a href="../ref/match_flag_type.html" title="match_flag_type">flag +<code class="computeroutput"><span class="identifier">match_not_dot_null</span></code></a>
+is passed to the matching algorithms. <br>
+NULL字符当<a href="../ref/match_flag_type.html" title="match_flag_type">标 记(flag)<code class="computeroutput"><span class="identifier">match_not_dot_null</span></code></a>被
+传入匹配算法中。 </li>
+<li> The newline character when the <a href="../ref/match_flag_type.html" title="match_flag_type">flag +<code class="computeroutput"><span class="identifier">match_not_dot_newline</span></code></a>
+is passed to the matching algorithms. <br>
+换行字符当<a href="../ref/match_flag_type.html" title="match_flag_type">标 记(flag)<code class="computeroutput"><span class="identifier">&gt;match_not_dot_newline</span></code></a>被
+传入匹配算法中。 </li>
+</ul>
+</div>
+<a name="boost_regex.syntax.perl_syntax.anchors"></a>
+<h5><a name="id507950"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.anchors">Anchors
+锚点</a> </h5>
+<p> A '^' character shall match the start of a line. <br>
+'^'字符会匹配行的起始。 </p>
+<p> A '$' character shall match the end of a line. <br>
+'$'字符会匹配行的终止。 </p>
+<a name="boost_regex.syntax.perl_syntax.marked_sub_expressions"></a>
+<h5><a name="id507984"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.marked_sub_expressions">Marked
+sub-expressions 标记子表达式</a> </h5>
+<p> A section beginning <code class="computeroutput"><span class="special">(</span></code> and ending <code class="computeroutput"><span class="special">)</span></code>
+acts as a marked sub-expression. Whatever matched the sub-expression is
+split out in a separate field by the matching algorithms. Marked
+sub-expressions can also repeated, or referred to by a back-reference. <br>
+开始的<code class="computeroutput"><span class="special">(</span></code>和
+终止的<code class="computeroutput"><span class="special">)</span></code>部
+分是标记子表达式。 匹配算法会将子表达式匹配的部分分离成独立的部分。 标记子 表达式也可以被重复,或后向引用(back-reference)。 </p>
+<a name="boost_regex.syntax.perl_syntax.non_marking_grouping"></a>
+<h5><a name="id508040"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.non_marking_grouping">Non-marking
+grouping 非标记组</a> </h5>
+<p> A marked sub-expression is useful to lexically group part of
+a regular expression, but has the side-effect of spitting out an extra
+field in the result. As an alternative you can lexically group part of
+a regular expression, without generating a marked sub-expression by
+using <code class="computeroutput"><span class="special">(?:</span></code> and <code class="computeroutput"><span class="special">)</span></code> +, for example <code class="computeroutput"><span class="special">(?:</span><span class="identifier">ab</span><span class="special">)+</span></code> will repeat <code class="computeroutput"><span class="identifier">ab</span></code>
+without splitting out any separate sub-expressions. <br>
+标记子表达式对于正则表达式中的成组文字部分是非常有用的,但将结果分组是有副 作用的。 作为选择,可以通过<code class="computeroutput"><span class="special">(?:</span></code>和<code class="computeroutput"><span class="special">)</span></code>产 +生文字分组,但不产生标记子表达式, 例如<code class="computeroutput"><span class="special">(?:</span><span class="identifier">ab</span><span class="special">)+</span></code>会重复<code class="computeroutput"><span class="identifier">ab</span></code>但
+并不分隔出单独的子表达式。 </p>
+<a name="boost_regex.syntax.perl_syntax.repeats"></a>
+<h5><a name="id508128"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.repeats">Repeats
+重复</a> </h5>
+<p> Any atom (a single character, a marked sub-expression, or a
+character class) can be repeated with the <code class="computeroutput"><span class="special">*</span></code>,
+<code class="computeroutput"><span class="special">+</span></code>,
+<code class="computeroutput"><span class="special">?</span></code>,
+and <code class="computeroutput"><span class="special">{}</span></code>
+operators. <br>
+任意原子(单个字符,一个标记子表达式或一个字符组)可以通过<code class="computeroutput"><span class="special">*</span></code>、<code class="computeroutput"><span class="special">+</span></code><code class="computeroutput"><span class="special">?</span></code>和<code class="computeroutput"><span class="special">{}</span></code>操
+作符重复。 </p>
+<p> The <code class="computeroutput"><span class="special">*</span></code> operator will
+match the preceding atom zero or more times, for example the expression
+<code class="computeroutput"><span class="identifier">a</span><span class="special">*</span><span class="identifier">b</span></code>
+will match any of the following: <br>
+<code class="computeroutput"><span class="special">*</span></code>操
+作符会匹配前面的原子零次或多次, 例如表达式<code class="computeroutput"><span class="identifier">a</span><span class="special">*</span><span class="identifier">b</span></code>可以匹配下面 的: </p> +<pre class="programlisting"><span class="identifier">b</span><br><span class="identifier">ab</span><br><span class="identifier">aaaaaaaab</span>
 </pre>
-<p>
- The <code class="computeroutput"><span class="special">+</span></code> operator will match the - preceding atom one or more times, for example the expression <code class="computeroutput"><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span></code>
-        will match any of the following:
-        <br />
- <code class="computeroutput"><span class="special">+</span></code>操作符会匹配前面的原子一次或多次, - 例如表达式<code class="computeroutput"><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span></code>可以匹配下面的:
-      </p>
-<pre class="programlisting"><span class="identifier">ab</span>
-<span class="identifier">aaaaaaaab</span>
+<p> The <code class="computeroutput"><span class="special">+</span></code> operator will +match the preceding atom one or more times, for example the expression <code class="computeroutput"><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span></code>
+will match any of the following: <br>
+<code class="computeroutput"><span class="special">+</span></code>操
+作符会匹配前面的原子一次或多次, 例如表达式<code class="computeroutput"><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span></code>可以匹配下面 的: </p> +<pre class="programlisting"><span class="identifier">ab</span><br><span class="identifier">aaaaaaaab</span>
 </pre>
-<p>
-        But will not match:
-        <br />
-        但不会匹配:
-      </p>
+<p> But will not match: <br>
+但不会匹配: </p>
 <pre class="programlisting"><span class="identifier">b</span>
 </pre>
-<p>
- The <code class="computeroutput"><span class="special">?</span></code> operator will match the - preceding atom zero or one times, for example the expression ca?b will match
-        any of the following:
-        <br />
- <code class="computeroutput"><span class="special">?</span></code>操作符会匹配前面的原子零次或一次,
-        例如表达式ca?b会匹配下面的:
-      </p>
-<pre class="programlisting"><span class="identifier">cb</span>
-<span class="identifier">cab</span>
+<p> The <code class="computeroutput"><span class="special">?</span></code> operator will
+match the preceding atom zero or one times, for example the expression
+ca?b will match any of the following: <br>
+<code class="computeroutput"><span class="special">?</span></code>操
+作符会匹配前面的原子零次或一次, 例如表达式ca?b会匹配下面的: </p>
+<pre class="programlisting"><span class="identifier">cb</span><br><span class="identifier">cab</span>
 </pre>
-<p>
-        But will not match:
-        <br />
-        但不会匹配:
-      </p>
+<p> But will not match: <br>
+但不会匹配: </p>
 <pre class="programlisting"><span class="identifier">caab</span>
 </pre>
-<p>
-        An atom can also be repeated with a bounded repeat:
-        <br />
-        原子同样可以被重复有界次数:
-      </p>
-<p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">{</span><span class="identifier">n</span><span class="special">}</span></code> Matches
-        'a' repeated exactly n times.
-        <br />
- <code class="computeroutput"><span class="identifier">a</span><span class="special">{</span><span class="identifier">n</span><span class="special">}</span></code>匹配'a'重复 n次。
-      </p>
-<p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">{</span><span class="identifier">n</span><span class="special">,}</span></code> Matches
-        'a' repeated n or more times.
-        <br />
- <code class="computeroutput"><span class="identifier">a</span><span class="special">{</span><span class="identifier">n</span><span class="special">,}</span></code>匹配'a'重复 n次或更多次。
-      </p>
-<p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">{</span><span class="identifier">n</span><span class="special">,</span> <span class="identifier">m</span><span class="special">}</span></code> Matches 'a' repeated between n and m times
-        inclusive.
-      <br />
- <code class="computeroutput"><span class="identifier">a</span><span class="special">{</span><span class="identifier">n</span><span class="special">,</span> <span class="identifier">m</span><span class="special">}</span></code>匹配'a'重复n次到m次之间。
-      </p>
-<p>
-        For example:
-      </p>
+<p> An atom can also be repeated with a bounded repeat: <br>
+原子同样可以被重复有界次数: </p>
+<p> <code class="computeroutput"><span class="identifier">a</span><span class="special">{</span><span class="identifier">n</span><span class="special">}</span></code>
+Matches 'a' repeated exactly n times. <br>
+<code class="computeroutput"><span class="identifier">a</span><span class="special">{</span><span class="identifier">n</span><span class="special">}</span></code>匹配'a'重复n次。 </p> +<p> <code class="computeroutput"><span class="identifier">a</span><span class="special">{</span><span class="identifier">n</span><span class="special">,}</span></code>
+Matches 'a' repeated n or more times. <br>
+<code class="computeroutput"><span class="identifier">a</span><span class="special">{</span><span class="identifier">n</span><span class="special">,}</span></code>匹配'a'重复n次或更多次。 </p> +<p> <code class="computeroutput"><span class="identifier">a</span><span class="special">{</span><span class="identifier">n</span><span class="special">,</span> +<span class="identifier">m</span><span class="special">}</span></code> Matches 'a'
+repeated between n and m times inclusive. <br>
+<code class="computeroutput"><span class="identifier">a</span><span class="special">{</span><span class="identifier">n</span><span class="special">,</span> <span class="identifier">m</span><span class="special">}</span></code>匹配'a'重复n次到m次之间。 </p>
+<p> For example: </p>
 <pre class="programlisting">^a{2,3}$</pre>
-<p>
-        Will match either of:
-        <br />
-        会匹配如下:
-      </p>
-<pre class="programlisting"><span class="identifier">aa</span>
-<span class="identifier">aaa</span>
+<p> Will match either of: <br>
+会匹配如下: </p>
+<pre class="programlisting"><span class="identifier">aa</span><br><span class="identifier">aaa</span>
 </pre>
-<p>
-        But neither of:
-        <br />
-        但不会匹配:
-      </p>
-<pre class="programlisting"><span class="identifier">a</span>
-<span class="identifier">aaaa</span>
+<p> But neither of: <br>
+但不会匹配: </p>
+<pre class="programlisting"><span class="identifier">a</span><br><span class="identifier">aaaa</span>
 </pre>
-<p>
- It is an error to use a repeat operator, if the preceding construct can not
-        be repeated, for example:
-        <br />
-        如果前面的结构不能被重复,那么使用重复操作符是一个错误,例如:
-      </p>
+<p> It is an error to use a repeat operator, if the preceding
+construct can not be repeated, for example: <br>
+如果前面的结构不能被重复,那么使用重复操作符是一个错误,例如: </p>
<pre class="programlisting"><span class="identifier">a</span><span class="special">(*)</span>
 </pre>
-<p>
- Will raise an error, as there is nothing for the <code class="computeroutput"><span class="special">*</span></code>
-        operator to be applied to.
-        <br />
- 但报告一个错误,因为<code class="computeroutput"><span class="special">*</span></code>操作符没有可以应用的对象。
-      </p>
-<a name="boost_regex.syntax.perl_syntax.non_greedy_repeats"></a><h5>
-<a name="id508601"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.non_greedy_repeats">Non greedy
-        repeats 非贪婪重复</a>
-      </h5>
-<p>
-        The normal repeat operators are "greedy", that is to say they will
- consume as much input as possible. There are non-greedy versions available - that will consume as little input as possible while still producing a match.
-        <br />
-        通常的重复是"贪婪的",也说明说它们会消耗尽可能多的输入。
-        同样存在非贪婪版本,生成匹配时会消耗尽可能少的输入。
-      </p>
-<p>
- <code class="computeroutput"><span class="special">*?</span></code> Matches the previous atom
-        zero or more times, while consuming as little input as possible.
-        <br />
- <code class="computeroutput"><span class="special">*?</span></code>匹配前面的原子零次或多次,但尽可能少地消耗输 入。
-      </p>
-<p>
- <code class="computeroutput"><span class="special">+?</span></code> Matches the previous atom
-        one or more times, while consuming as little input as possible.
-        <br />
- <code class="computeroutput"><span class="special">+?</span></code>匹配前面的原子一次或多次,但尽可能少地消耗输 入。
-      </p>
-<p>
- <code class="computeroutput"><span class="special">??</span></code> Matches the previous atom
-        zero or one times, while consuming as little input as possible.
-        <br />
- <code class="computeroutput"><span class="special">??</span></code>匹配前面的原子零次或一次,但尽可能少地消耗输 入。
-      </p>
-<p>
- <code class="computeroutput"><span class="special">{</span><span class="identifier">n</span><span class="special">,}?</span></code> Matches the previous atom n or more times,
-        while consuming as little input as possible.
-        <br />
- <code class="computeroutput"><span class="special">{</span><span class="identifier">n</span><span class="special">,}?</span></code>匹配前面的 原子n次或更多次,但尽可能少地消耗输入。
-      </p>
-<p>
- <code class="computeroutput"><span class="special">{</span><span class="identifier">n</span><span class="special">,</span><span class="identifier">m</span><span class="special">}?</span></code> - Matches the previous atom between n and m times, while consuming as little
-        input as possible.
-        <br />
- <code class="computeroutput"><span class="special">{</span><span class="identifier">n</span><span class="special">,</span><span class="identifier">m</span><span class="special">}?</span></code>匹配前面的 原子n次到m次,但尽可能少地消耗输入。
-      </p>
-<a name="boost_regex.syntax.perl_syntax.back_references"></a><h5>
-<a name="id508746"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.back_references">Back references 后向引用</a>
-      </h5>
-<p>
- An escape character followed by a digit <span class="emphasis"><em>n</em></span>, where <span class="emphasis"><em>n</em></span> - is in the range 1-9, matches the same string that was matched by sub-expression - <span class="emphasis"><em>n</em></span>. For example the expression:
-        <br />
- 一个转义字符跟着一个数字<span class="emphasis"><em>n</em></span>,<span class="emphasis"><em>n</em></span>的范围是1-9,匹配被子表达式<span class="emphasis"><em>n</em></span>匹配的相同字符串。
-        例如表达式:
-      </p>
+<p> Will raise an error, as there is nothing for the <code class="computeroutput"><span class="special">*</span></code>
+operator to be applied to. <br>
+但报告一个错误,因为<code class="computeroutput"><span class="special">*</span></code>操作符没有可以应用的对象。 </p>
+<a name="boost_regex.syntax.perl_syntax.non_greedy_repeats"></a>
+<h5><a name="id508601"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.non_greedy_repeats">Non
+greedy repeats 非贪婪重复</a> </h5>
+<p> The normal repeat operators are "greedy", that is to say they
+will consume as much input as possible. There are non-greedy versions
+available that will consume as little input as possible while still
+producing a match. <br>
+通常的重复是"贪婪的",也说明说它们会消耗尽可能多的输入。 同样存在非贪婪版 本,生成匹配时会消耗尽可能少的输入。 </p> +<p> <code class="computeroutput"><span class="special">*?</span></code> Matches the
+previous atom zero or more times, while consuming as little input as
+possible. <br>
+<code class="computeroutput"><span class="special">*?</span></code>匹
+配前面的原子零次或多次,但尽可能少地消耗输入。 </p>
+<p> <code class="computeroutput"><span class="special">+?</span></code> Matches the
+previous atom one or more times, while consuming as little input as
+possible. <br>
+<code class="computeroutput"><span class="special">+?</span></code>匹
+配前面的原子一次或多次,但尽可能少地消耗输入。 </p>
+<p> <code class="computeroutput"><span class="special">??</span></code> Matches the
+previous atom zero or one times, while consuming as little input as
+possible. <br>
+<code class="computeroutput"><span class="special">??</span></code>匹
+配前面的原子零次或一次,但尽可能少地消耗输入。 </p>
+<p> <code class="computeroutput"><span class="special">{</span><span class="identifier">n</span><span class="special">,}?</span></code> Matches the
+previous atom n or more times, while consuming as little input as
+possible. <br>
+<code class="computeroutput"><span class="special">{</span><span class="identifier">n</span><span class="special">,}?</span></code>匹
+配前面的原子n次或更多次,但尽可能少地消耗输入。 </p>
+<p> <code class="computeroutput"><span class="special">{</span><span class="identifier">n</span><span class="special">,</span><span class="identifier">m</span><span class="special">}?</span></code> Matches the
+previous atom between n and m times, while consuming as little input as
+possible. <br>
+<code class="computeroutput"><span class="special">{</span><span class="identifier">n</span><span class="special">,</span><span class="identifier">m</span><span class="special">}?</span></code>匹
+配前面的原子n次到m次,但尽可能少地消耗输入。</p>
+<h5><a name="id653980"></a><a class="link" href="perl_syntax.html#boost_regex.syntax.perl_syntax.pocessive_repeats">Pocessive
+repeats</a> </h5>
+<p>By default when a repeated patten does not match then the
+engine will backtrack until a match is found. However, this behaviour
+can sometime be undesireable so there are also "pocessive" repeats:
+these match as much as possible and do not then allow backtracking if
+the rest of the expression fails to match. </p>
+<p><code class="literal">*+</code> Matches the
+previous atom zero or more times, while giving nothing back. </p>
+<p><code class="literal">++</code> Matches the
+previous atom one or more times, while giving nothing back. </p>
+<p><code class="literal">?+</code> Matches the
+previous atom zero or one times, while giving nothing back. </p>
+<p><code class="literal">{n,}+</code> Matches
+the previous atom n or more times, while giving nothing back. </p>
+<p><code class="literal">{n,m}+</code> Matches
+the previous atom between n and m times, while giving nothing back.</p>
+<a name="boost_regex.syntax.perl_syntax.back_references"></a>
+<h5><a name="id508746"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.back_references">Back
+references 后向引用</a> </h5>
+<p> An escape character followed by a digit <span class="emphasis"><em>n</em></span>, where <span class="emphasis"><em>n</em></span> is in
+the range 1-9, matches the same string that was matched by
+sub-expression <span class="emphasis"><em>n</em></span>.
+For example the expression: <br>
+一个转义字符跟着一个数字<span class="emphasis"><em>n</em></span>,<span class="emphasis"><em>n</em></span>的范围是1-9,匹
+配被子表达式<span class="emphasis"><em>n</em></span>匹
+配的相同字符串。 例如表达式: </p>
 <pre class="programlisting">^(a*).*\1$</pre>
-<p>
-        Will match the string:
-        <br />
-        匹配字符串:
-      </p>
+<p> Will match the string: <br>
+匹配字符串: </p>
 <pre class="programlisting"><span class="identifier">aaabbaaa</span>
 </pre>
-<p>
-        But not the string:
-        <br />
-        但不匹配:
-      </p>
+<p> But not the string: <br>
+但不匹配: </p>
 <pre class="programlisting"><span class="identifier">aaabba</span>
 </pre>
-<a name="boost_regex.syntax.perl_syntax.alternation"></a><h5>
-<a name="id508829"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.alternation">Alternation 选择</a>
-      </h5>
-<p>
- The <code class="computeroutput"><span class="special">| </span></code> operator will match either - of its arguments, so for example: <code class="computeroutput"><span class="identifier">abc</span><span class="special">|</span><span class="identifier">def</span></code> will
-        match either "abc" or "def".
-        <br />
- <code class="computeroutput"><span class="special">| </span></code>操作符匹配它的参数之一, - 例如:<code class="computeroutput"><span class="identifier">abc</span><span class="special">|</span><span class="identifier">def</span></code>会匹配"abc"或"def"。
-      </p>
-<p>
- Parenthesis can be used to group alternations, for example: <code class="computeroutput"><span class="identifier">ab</span><span class="special">(</span><span class="identifier">d</span><span class="special">|</span><span class="identifier">ef</span><span class="special">)</span></code>
-        will match either of "abd" or "abef".
-        <br />
- 括号可以用来对选择进行分组,例如<code class="computeroutput"><span class="identifier">ab</span><span class="special">(</span><span class="identifier">d</span><span class="special">|</span><span class="identifier">ef</span><span class="special">)</span></code>会匹 配"abd"或"abef"。
-      </p>
-<p>
- Empty alternatives are not allowed (these are almost always a mistake), but - if you really want an empty alternative use <code class="computeroutput"><span class="special">(?:)</span></code>
-        as a placeholder, for example:
-        <br />
- 空的选择是不允许的(这通常都是错误),但如果你真的需要一个空的选 择,可以使用<code class="computeroutput"><span class="special">(?:)</span></code>作为占位符,例如:
-      </p>
-<p>
- <code class="computeroutput"><span class="special">|</span><span class="identifier">abc</span></code>
-        is not a valid expression, but
-        <br />
- <code class="computeroutput"><span class="special">|</span><span class="identifier">abc</span></code>不是有效的表达式,但
-      </p>
-<p>
- <code class="computeroutput"><span class="special">(?:)| </span><span class="identifier">abc</span></code>
-        is and is equivalent, also the expression:
-        <br />
- <code class="computeroutput"><span class="special">(?:)| </span><span class="identifier">abc</span></code>是有效的表达式,并且等价于 表达式:
-      </p>
-<p>
- <code class="computeroutput"><span class="special">(?:</span><span class="identifier">abc</span><span class="special">)??</span></code> has exactly the same effect.
-        <br />
- <code class="computeroutput"><span class="special">(?:</span><span class="identifier">abc</span><span class="special">)??</span></code>有完全相 同的作用。
-      </p>
-<a name="boost_regex.syntax.perl_syntax.character_sets"></a><h5>
-<a name="id509018"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_sets">Character sets 字符集</a>
-      </h5>
-<p>
- A character set is a bracket-expression starting with <code class="computeroutput"><span class="special">[</span></code> - and ending with <code class="computeroutput"><span class="special">]</span></code>, it defines - a set of characters, and matches any single character that is a member of
-        that set.
-        <br />
- 字符集是一个以<code class="computeroutput"><span class="special">[</span></code>开始,以<code class="computeroutput"><span class="special">]</span></code>结束的方括号表达式,
-        字定义了一个字符的集合,匹配集合中的任意单个字符。
-      </p>
-<p>
-        A bracket expression may contain any combination of the following:
-        <br />
-        方括号表达式可以包含下面的组合:
-      </p>
-<a name="boost_regex.syntax.perl_syntax.single_characters"></a><h6>
-<a name="id509077"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.single_characters">Single characters 单个字符</a>
-      </h6>
-<p>
- For example <code class="computeroutput"><span class="special">[</span><span class="identifier">abc</span><span class="special">]</span></code>, will match any of the characters 'a', 'b',
-        or 'c'.
-        <br />
- 例如<code class="computeroutput"><span class="special">[</span><span class="identifier">abc</span><span class="special">]</span></code>可以匹配'a'、'b'或'c'。
-      </p>
-<a name="boost_regex.syntax.perl_syntax.character_ranges"></a><h6>
-<a name="id509127"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_ranges">Character
-        ranges 字符范围</a>
-      </h6>
-<p>
- For example <code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">]</span></code> - will match any single character in the range 'a' to 'c'. By default, for - Perl regular expressions, a character x is within the range y to z, if the - code point of the character lies within the codepoints of the endpoints of - the range. Alternatively, if you set the <a href="../ref/syntax_option_type/syntax_option_type_perl.html" title="Options for Perl Regular Expressions"><code class="computeroutput"><span class="identifier">collate</span></code> flag</a> when constructing the
-        regular expression, then ranges are locale sensitive.
-        <br />
- 例如<code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">]</span></code>可以匹配'a'到'c'范围内的任意单个字符。 - 对于缺省的Perl正则表达式,字符x在y到z的范围中间(这个地方是不是搞错 了?译者注),如果字符的码点(code point)在范围的码点之间。 - 另外,如果在构造正则表达式时设置了<a href="../ref/syntax_option_type/syntax_option_type_perl.html" title="Options for Perl Regular Expressions"><code class="computeroutput"><span class="identifier">collate</span></code>标记 </a>,那范围就是地区(locale)相关的。
-      </p>
-<a name="boost_regex.syntax.perl_syntax.negation"></a><h6>
-<a name="id509207"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.negation">Negation 否 定</a>
-      </h6>
-<p>
- If the bracket-expression begins with the ^ character, then it matches the - complement of the characters it contains, for example <code class="computeroutput"><span class="special">[^</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">]</span></code> matches any character that is not in the - range <code class="computeroutput"><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span></code>.
-        <br />
-        如果方括号表达式以^字符开始,那么它匹配包含字符的补集,
- 例如<code class="computeroutput"><span class="special">[^</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">]</span></code>匹配不在<code class="computeroutput"><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span></code>范围内的任意字符。
-      </p>
-<a name="boost_regex.syntax.perl_syntax.character_classes"></a><h6>
-<a name="id509290"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_classes">Character
-        classes 字符类</a>
-      </h6>
-<p>
- An expression of the form <code class="computeroutput"><span class="special">[[:</span><span class="identifier">name</span><span class="special">:]]</span></code> - matches the named character class "name", for example <code class="computeroutput"><span class="special">[[:</span><span class="identifier">lower</span><span class="special">:]]</span></code> matches any lower case character. See - <a href="character_classes.html" title="Character Class Names">character class names</a>.
-        <br />
- <code class="computeroutput"><span class="special">[[:</span><span class="identifier">name</span><span class="special">:]]</span></code>形式的 表达式匹配命名字符类"name", - 例如<code class="computeroutput"><span class="special">[[:</span><span class="identifier">lower</span><span class="special">:]]</span></code>任意小写字符。 - 参见<a href="character_classes.html" title="Character Class Names">character class names</a>。
-      </p>
-<a name="boost_regex.syntax.perl_syntax.collating_elements"></a><h6>
-<a name="id509373"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.collating_elements">Collating
-        Elements 对照元素</a>
-      </h6>
-<p>
- An expression of the form <code class="computeroutput"><span class="special">[[.</span><span class="identifier">col</span><span class="special">.]</span></code> matches - the collating element <span class="emphasis"><em>col</em></span>. A collating element is any - single character, or any sequence of characters that collates as a single - unit. Collating elements may also be used as the end point of a range, for - example: <code class="computeroutput"><span class="special">[[.</span><span class="identifier">ae</span><span class="special">.]-</span><span class="identifier">c</span><span class="special">]</span></code>
-        matches the character sequence "ae", plus any single character
-        in the range "ae"-c, assuming that "ae" is treated as
-        a single collating element in the current locale.
-        <br />
- <code class="computeroutput"><span class="special">[[.</span><span class="identifier">col</span><span class="special">.]</span></code>形式的表 达式匹配对照元素<span class="emphasis"><em>col</em></span>。
-        对照元素是任意的单个字符,或对应于某个单个单元的字符序列。
- 对照还可以用作范围的端点,例如<code class="computeroutput"><span class="special">[[.</span><span class="identifier">ae</span><span class="special">.]-</span><span class="identifier">c</span><span class="special">]</span></code>匹配1字符序列"ae",和任意的单个字符在范 围"ae"到c之间,其中"ae"被当前区域(locale)处理为单个对照元素。
-      </p>
-<p>
- As an extension, a collating element may also be specified via it's <a href="collating_names.html" title="Collating Names">symbolic name</a>, for example:
-        <br />
- 作为扩展,对照元素可以通过其<a href="collating_names.html" title="Collating Names">符号名字(symbolic name)</a>指定,例如:
-      </p>
+<p>You can also use the \g escape for the same function, for
+example: </p>
+<div class="informaltable">
+<table class="table">
+<colgroup><col><col></colgroup>
+<thead><tr>
+<th>
+<p>Escape </p>
+</th>
+<th>
+<p>Meaning </p>
+</th>
+</tr>
+</thead><tbody>
+<tr>
+<td>
+<p><code class="literal">\g1</code> </p>
+</td>
+<td>
+<p>Match whatever matched sub-expression 1 </p>
+</td>
+</tr>
+<tr>
+<td>
+<p><code class="literal">\g{1}</code> </p>
+</td>
+<td>
+<p>Match whatever matched sub-expression 1: this form
+allows for safer parsing of the expression in cases like <code class="literal">\g{1}2</code> or for indexes higher
+than 9 as in <code class="literal">\g{1234}</code> </p>
+</td>
+</tr>
+<tr>
+<td>
+<p><code class="literal">\g-1</code> </p>
+</td>
+<td>
+<p>Match whatever matched the last opened sub-expression </p>
+</td>
+</tr>
+<tr>
+<td>
+<p><code class="literal">\g{-2}</code> </p>
+</td>
+<td>
+<p>Match whatever matched the last but one opened
+sub-expression </p>
+</td>
+</tr>
+<tr>
+<td>
+<p><code class="literal">\g{one}</code> </p>
+</td>
+<td>
+<p>Match whatever matched the sub-expression named "one" </p>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<p>Finally the \k escape can be used to refer to named
+subexpressions, for example <code class="literal">\k&lt;two&gt;</code>
+will match whatever matched the subexpression named "two". </p>
+<a name="boost_regex.syntax.perl_syntax.alternation"></a>
+<h5><a name="id508829"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.alternation">Alternation
+选择</a> </h5>
+<p> The <code class="computeroutput"><span class="special">|</span></code> operator will +match either of its arguments, so for example: <code class="computeroutput"><span class="identifier">abc</span><span class="special">|</span><span class="identifier">def</span></code>
+will match either "abc" or "def". <br>
+<code class="computeroutput"><span class="special">|</span></code>操
+作符匹配它的参数之一, 例如:<code class="computeroutput"><span class="identifier">abc</span><span class="special">|</span><span class="identifier">def</span></code>会匹配"abc"或
+"def"。 </p>
+<p> Parenthesis can be used to group alternations, for example: <code class="computeroutput"><span class="identifier">ab</span><span class="special">(</span><span class="identifier">d</span><span class="special">|</span><span class="identifier">ef</span><span class="special">)</span></code> will match
+either of "abd" or "abef". <br>
+括号可以用来对选择进行分组,例如<code class="computeroutput"><span class="identifier">ab</span><span class="special">(</span><span class="identifier">d</span><span class="special">|</span><span class="identifier">ef</span><span class="special">)</span></code>会
+匹配"abd"或"abef"。 </p>
+<p> Empty alternatives are not allowed (these are almost always a
+mistake), but if you really want an empty alternative use <code class="computeroutput"><span class="special">(?:)</span></code>
+as a placeholder, for example: <br>
+空的选择是不允许的(这通常都是错误),但如果你真的需要一个空的选择,可以使用 <code class="computeroutput"><span class="special">(?:)</span></code>作为占 位符,例如: </p> +<p> <code class="computeroutput"><span class="special">|</span><span class="identifier">abc</span></code>
+is not a valid expression, but <br>
+<code class="computeroutput"><span class="special">|</span><span class="identifier">abc</span></code>不是有效的表达式,但 </p> +<p> <code class="computeroutput"><span class="special">(?:)|</span><span class="identifier">abc</span></code>
+is and is equivalent, also the expression: <br>
+<code class="computeroutput"><span class="special">(?:)|</span><span class="identifier">abc</span></code>是有效的表达式,并且等价于
+表达式: </p>
+<p> <code class="computeroutput"><span class="special">(?:</span><span class="identifier">abc</span><span class="special">)??</span></code> has exactly
+the same effect. <br>
+<code class="computeroutput"><span class="special">(?:</span><span class="identifier">abc</span><span class="special">)??</span></code>有
+完全相同的作用。 </p>
+<a name="boost_regex.syntax.perl_syntax.character_sets"></a>
+<h5><a name="id509018"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_sets">Character
+sets 字符集</a> </h5>
+<p> A character set is a bracket-expression starting with <code class="computeroutput"><span class="special">[</span></code> +and ending with <code class="computeroutput"><span class="special">]</span></code>, it defines a
+set of characters, and matches any single character that is a member of
+that set. <br>
+字符集是一个以<code class="computeroutput"><span class="special">[</span></code>开始,以<code class="computeroutput"><span class="special">]</span></code>结
+束的方括号表达式, 字定义了一个字符的集合,匹配集合中的任意单个字符。 </p>
+<p> A bracket expression may contain any combination of the
+following: <br>
+方括号表达式可以包含下面的组合: </p>
+<a name="boost_regex.syntax.perl_syntax.single_characters"></a>
+<h6><a name="id509077"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.single_characters">Single
+characters 单个字符</a> </h6>
+<p> For example <code class="computeroutput"><span class="special">[</span><span class="identifier">abc</span><span class="special">]</span></code>, will match any
+of the characters 'a', 'b', or 'c'. <br>
+例如<code class="computeroutput"><span class="special">[</span><span class="identifier">abc</span><span class="special">]</span></code>可
+以匹配'a'、'b'或'c'。 </p>
+<a name="boost_regex.syntax.perl_syntax.character_ranges"></a>
+<h6><a name="id509127"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_ranges">Character
+ranges 字符范围</a> </h6>
+<p> For example <code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">]</span></code> will match any
+single character in the range 'a' to 'c'. By default, for Perl regular
+expressions, a character x is within the range y to z, if the code
+point of the character lies within the codepoints of the endpoints of
+the range. Alternatively, if you set the <a href="../ref/syntax_option_type/syntax_option_type_perl.html" title="Options for Perl Regular Expressions"><code class="computeroutput"><span class="identifier">collate</span></code>
+flag</a> when constructing the regular expression, then ranges
+are locale sensitive. <br>
+例如<code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">]</span></code>可
+以匹配'a'到'c'范围内的任意单个字符。
+对于缺省的Perl正则表达式,字符x在y到z的范围中间(这个地方是不是搞错了?译者 注),如果字符的码点(code +point)在范围的码点之间。 另外,如果在构造正则表达式时设置了<a href="../ref/syntax_option_type/syntax_option_type_perl.html" title="Options for Perl Regular Expressions"><code class="computeroutput"><span class="identifier">collate</span></code>标
+记</a>,那范围就是地区(locale)相关的。 </p>
+<a name="boost_regex.syntax.perl_syntax.negation"></a>
+<h6><a name="id509207"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.negation">Negation
+否定</a> </h6>
+<p> If the bracket-expression begins with the ^ character, then
+it matches the complement of the characters it contains, for example <code class="computeroutput"><span class="special">[^</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">]</span></code> +matches any character that is not in the range <code class="computeroutput"><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span></code>.
+<br>
+如果方括号表达式以^字符开始,那么它匹配包含字符的补集, 例如<code class="computeroutput"><span class="special">[^</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">]</span></code>匹配不在 <code class="computeroutput"><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span></code>范
+围内的任意字符。 </p>
+<a name="boost_regex.syntax.perl_syntax.character_classes"></a>
+<h6><a name="id509290"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_classes">Character
+classes 字符类</a> </h6>
+<p> An expression of the form <code class="computeroutput"><span class="special">[[:</span><span class="identifier">name</span><span class="special">:]]</span></code> matches the +named character class "name", for example <code class="computeroutput"><span class="special">[[:</span><span class="identifier">lower</span><span class="special">:]]</span></code> +matches any lower case character. See <a href="character_classes.html" title="Character Class Names">character
+class names</a>. <br>
+<code class="computeroutput"><span class="special">[[:</span><span class="identifier">name</span><span class="special">:]]</span></code>形 +式的表达式匹配命名字符类"name", 例如<code class="computeroutput"><span class="special">[[:</span><span class="identifier">lower</span><span class="special">:]]</span></code>任意小写字符。 参见<a href="character_classes.html" title="Character Class Names">character
+class names</a>。 </p>
+<a name="boost_regex.syntax.perl_syntax.collating_elements"></a>
+<h6><a name="id509373"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.collating_elements">Collating
+Elements 对照元素</a> </h6>
+<p> An expression of the form <code class="computeroutput"><span class="special">[[.</span><span class="identifier">col</span><span class="special">.]</span></code> matches the
+collating element <span class="emphasis"><em>col</em></span>.
+A collating element is any single character, or any sequence of
+characters that collates as a single unit. Collating elements may also
+be used as the end point of a range, for example: <code class="computeroutput"><span class="special">[[.</span><span class="identifier">ae</span><span class="special">.]-</span><span class="identifier">c</span><span class="special">]</span></code>
+matches the character sequence "ae", plus any single character in the
+range "ae"-c, assuming that "ae" is treated as a single collating
+element in the current locale. <br>
+<code class="computeroutput"><span class="special">[[.</span><span class="identifier">col</span><span class="special">.]</span></code>形
+式的表达式匹配对照元素<span class="emphasis"><em>col</em></span>。
+对照元素是任意的单个字符,或对应于某个单个单元的字符序列。 对照还可以用作范 围的端点,例如<code class="computeroutput"><span class="special">[[.</span><span class="identifier">ae</span><span class="special">.]-</span><span class="identifier">c</span><span class="special">]</span></code>匹 +配1字符序列"ae",和任意的单个字符在范围"ae"到c之间,其中"ae"被当前区域 (locale)处理为单个对照元素。 </p>
+<p> As an extension, a collating element may also be specified
+via it's <a href="collating_names.html" title="Collating Names">symbolic name</a>, for
+example: <br>
+作为扩展,对照元素可以通过其<a href="collating_names.html" title="Collating Names">符号名字(symbolic name)</a>指定,例如: </p> <pre class="programlisting"><span class="special">[[.</span><span class="identifier">NUL</span><span class="special">.]]</span>
 </pre>
-<p>
- matches a <code class="computeroutput"><span class="special">\</span><span class="number">0</span></code>
-        character.
-        <br />
- 匹配<code class="computeroutput"><span class="special">\</span><span class="number">0</span></code>字符。
-      </p>
-<a name="boost_regex.syntax.perl_syntax.equivalence_classes"></a><h6>
-<a name="id509521"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.equivalence_classes">Equivalence
-        classes 等价类</a>
-      </h6>
-<p>
- An expression of the form <code class="computeroutput"><span class="special">[[=</span><span class="identifier">col</span><span class="special">=]]</span></code>, - matches any character or collating element whose primary sort key is the - same as that for collating element <span class="emphasis"><em>col</em></span>, as with collating - elements the name <span class="emphasis"><em>col</em></span> may be a <a href="collating_names.html" title="Collating Names">symbolic - name</a>. A primary sort key is one that ignores case, accentation, or - locale-specific tailorings; so for example <code class="computeroutput"><span class="special">[[=</span><span class="identifier">a</span><span class="special">=]]</span></code> matches - any of the characters: a, À, Á, Â, Ã, Ä, Å, A, à, á, â, ã, ä and å. Unfortunately implementation - of this is reliant on the platform's collation and localisation support; - this feature can not be relied upon to work portably across all platforms,
-        or even all locales on one platform.
-        <br />
- <code class="computeroutput"><span class="special">[[=</span><span class="identifier">col</span><span class="special">=]]</span></code>的表达式 匹配主排序关键字等同于对照元素<span class="emphasis"><em>col</em></span>的任 意字符或对照元素,其中名字为<span class="emphasis"><em>col</em></span>的对照 元素可以是一个<a href="collating_names.html" title="Collating Names">符号名 称(symbolic name)</a>。
-        主排序关键字忽略大小写、重音或特定区域(locale)的裁剪(tailorings);
- 所以如<code class="computeroutput"><span class="special">[[=</span><span class="identifier">a</span><span class="special">=]]</span></code>匹配下面的字符:a, À, Á, Â, Ã, Ä, Å, A, à, á, â, ã, ä and å。 - 不幸的是这个实现依赖于平台的对照(collation)和地区(localization)支 持; - 这个特性并不能很好地可移植工作于所有的平台,甚至一个平台上的所有区 域(locale)。
-      </p>
-<a name="boost_regex.syntax.perl_syntax.escaped_characters"></a><h6>
-<a name="id509624"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.escaped_characters">Escaped
-        Characters 转义字符</a>
-      </h6>
-<p>
- All the escape sequences that match a single character, or a single character - class are permitted within a character class definition. For example <code class="computeroutput"><span class="special">[\[\]]</span></code> would match either of <code class="computeroutput"><span class="special">[</span></code> or <code class="computeroutput"><span class="special">]</span></code> - while <code class="computeroutput"><span class="special">[\</span><span class="identifier">W</span><span class="special">\</span><span class="identifier">d</span><span class="special">]</span></code> - would match any character that is either a "digit", <span class="emphasis"><em>or</em></span>
-        is <span class="emphasis"><em>not</em></span> a "word" character.
-        <br />
-        任意匹配单个字符或单个字符类的转义序列都可以定义在字符类中。
- 例如<code class="computeroutput"><span class="special">[\[\]]</span></code>可以匹配<code class="computeroutput"><span class="special">[</span></code>或<code class="computeroutput"><span class="special">]</span></code>, - 而<code class="computeroutput"><span class="special">[\</span><span class="identifier">W</span><span class="special">\</span><span class="identifier">d</span><span class="special">]</span></code>可以匹配任何不是"数字"或不是"单词"的字符。
-      </p>
-<a name="boost_regex.syntax.perl_syntax.combinations"></a><h6>
-<a name="id509730"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.combinations">Combinations 组合</a>
-      </h6>
-<p>
- All of the above can be combined in one character set declaration, for example: - <code class="computeroutput"><span class="special">[[:</span><span class="identifier">digit</span><span class="special">:]</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">[.</span><span class="identifier">NUL</span><span class="special">.]]</span></code>.
-        <br />
-        所有上面的都可以在一个字符类声明中被组合,
- 例如<code class="computeroutput"><span class="special">[[:</span><span class="identifier">digit</span><span class="special">:]</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">[.</span><span class="identifier">NUL</span><span class="special">.]]</span></code>。
-      </p>
-<a name="boost_regex.syntax.perl_syntax.escapes"></a><h5>
-<a name="id509808"></a>
- <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.escapes">Escapes 转义 符</a>
-      </h5>
-<p>
-        Any special character preceded by an escape shall match itself.
-        <br />
-        任意特殊字符前面加转义符都匹配自己。
-      </p>
-<p>
- The following escape sequences are all synonyms for single characters:
-        <br />
-        下面的转义序列都和单个字符同义:
-      </p>
-<div class="informaltable"><table class="table">
-<colgroup>
-<col>
-<col>
-</colgroup>
+<p> matches a <code class="computeroutput"><span class="special">\</span><span class="number">0</span></code>
+character. <br>
+匹配<code class="computeroutput"><span class="special">\</span><span class="number">0</span></code>字符。 </p>
+<a name="boost_regex.syntax.perl_syntax.equivalence_classes"></a>
+<h6><a name="id509521"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.equivalence_classes">Equivalence
+classes 等价类</a> </h6>
+<p> An expression of the form <code class="computeroutput"><span class="special">[[=</span><span class="identifier">col</span><span class="special">=]]</span></code>, matches any
+character or collating element whose primary sort key is the same as
+that for collating element <span class="emphasis"><em>col</em></span>,
+as with collating elements the name <span class="emphasis"><em>col</em></span> +may be a <a href="collating_names.html" title="Collating Names">symbolic name</a>. A primary
+sort key is one that ignores case, accentation, or locale-specific
+tailorings; so for example <code class="computeroutput"><span class="special">[[=</span><span class="identifier">a</span><span class="special">=]]</span></code> matches any of
+the characters: a, À, Á, Â, Ã, Ä, Å, A, à, á, â, ã, ä and å.
+Unfortunately implementation of this is reliant on the platform's
+collation and localisation support; this feature can not be relied upon
+to work portably across all platforms, or even all locales on one
+platform. <br>
+<code class="computeroutput"><span class="special">[[=</span><span class="identifier">col</span><span class="special">=]]</span></code>的 +表达式匹配主排序关键字等同于对照元素<span class="emphasis"><em>col</em></span>的
+任意字符或对照元素,其中名字为<span class="emphasis"><em>col</em></span>的
+对照元素可以是一个<a href="collating_names.html" title="Collating Names">符 号名称(symbolic name)</a>。 +主排序关键字忽略大小写、重音或特定区域(locale)的裁剪(tailorings); 所以如 <code class="computeroutput"><span class="special">[[=</span><span class="identifier">a</span><span class="special">=]]</span></code>匹
+配下面的字符:a, À, Á, Â, Ã, Ä, Å, A, à, á, â, ã, ä and å。
+不幸的是这个实现依赖于平台的对照(collation)和地区(localization)支持;
+这个特性并不能很好地可移植工作于所有的平台,甚至一个平台上的所有区域 (locale)。 </p>
+<a name="boost_regex.syntax.perl_syntax.escaped_characters"></a>
+<h6><a name="id509624"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.escaped_characters">Escaped
+Characters 转义字符</a> </h6>
+<p> All the escape sequences that match a single character, or a
+single character class are permitted within a character class
+definition. For example <code class="computeroutput"><span class="special">[\[\]]</span></code> would match +either of <code class="computeroutput"><span class="special">[</span></code> or <code class="computeroutput"><span class="special">]</span></code> +while <code class="computeroutput"><span class="special">[\</span><span class="identifier">W</span><span class="special">\</span><span class="identifier">d</span><span class="special">]</span></code> would match any +character that is either a "digit", <span class="emphasis"><em>or</em></span>
+is <span class="emphasis"><em>not</em></span>
+a "word" character. <br>
+任意匹配单个字符或单个字符类的转义序列都可以定义在字符类中。 例如<code class="computeroutput"><span class="special">[\[\]]</span></code>可以匹配 <code class="computeroutput"><span class="special">[</span></code>或<code class="computeroutput"><span class="special">]</span></code>, +而<code class="computeroutput"><span class="special">[\</span><span class="identifier">W</span><span class="special">\</span><span class="identifier">d</span><span class="special">]</span></code>可
+以匹配任何不是"数字"或不是"单词"的字符。 </p>
+<a name="boost_regex.syntax.perl_syntax.combinations"></a>
+<h6><a name="id509730"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.combinations">Combinations
+组合</a> </h6>
+<p> All of the above can be combined in one character set
+declaration, for example: <code class="computeroutput"><span class="special">[[:</span><span class="identifier">digit</span><span class="special">:]</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">[.</span><span class="identifier">NUL</span><span class="special">.]]</span></code>. <br> +所有上面的都可以在一个字符类声明中被组合, 例如<code class="computeroutput"><span class="special">[[:</span><span class="identifier">digit</span><span class="special">:]</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">[.</span><span class="identifier">NUL</span><span class="special">.]]</span></code>。 </p>
+<a name="boost_regex.syntax.perl_syntax.escapes"></a>
+<h5><a name="id509808"></a> <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.escapes">Escapes
+转义符</a> </h5>
+<p> Any special character preceded by an escape shall match
+itself. <br>
+任意特殊字符前面加转义符都匹配自己。 </p>
+<p> The following escape sequences are all synonyms for single
+characters: <br>
+下面的转义序列都和单个字符同义: </p>
+<div class="informaltable">
+<table class="table">
+<colgroup><col><col></colgroup>
 <thead><tr>
 <th>
-              <p>
-                Escape
-              </p>
-              </th>
+<p> Escape </p>
+</th>
 <th>
-              <p>
-                Character
-              </p>
-              </th>
-</tr></thead>
-<tbody>
+<p> Character </p>
+</th>
+</tr>
+</thead><tbody>
 <tr>
 <td>
***The diff for this file has been truncated for email.***
=======================================
--- /trunk/libs/regex/doc/html/index.html       Tue Mar 31 01:07:16 2009
+++ /trunk/libs/regex/doc/html/index.html       Sat Sep 12 00:52:19 2009
@@ -195,7 +195,7 @@
   </p>
 </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tbody><tr> -<td align="left"><p><small>Last revised: December 23, 2008 at 17:35:37 GMT</small></p></td> +<td align="left"><p><small>Last revised: July 29, 2009 at 15:59:46 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></tbody></table>
 <hr>
=======================================
--- /trunk/libs/serialization/doc/dataflow.html Thu Sep  4 19:45:46 2008
+++ /trunk/libs/serialization/doc/dataflow.html Sat Sep 12 00:52:19 2009
@@ -1,7 +1,5 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>
-<html>
-<head>
-<!--
+<html><head><!--
 (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
 Use, modification and distribution is subject to the Boost Software
 License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -9,6 +7,7 @@
 -->


+


   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -29,9 +28,7 @@



-  <title>Serialization - Dataflow Iterators</title>
-</head>
-
+  <title>Serialization - Dataflow Iterators</title></head>

 <body link="#0000ff" vlink="#800080">

@@ -205,7 +202,7 @@
 );
 </code></pre>

-该宏定义于 <a target="pfto" href="../../../boost/pfto.hpp">&lt;boost/pfto.hpp&gt;</a>. +该宏定义于&nbsp;<a href="../../../boost/serialization/pfto.hpp" target="pfto">&lt;boost/serialization/pfto.hpp&gt;</a>.
 有关它的更多信息,请看源代码。

 <h4>提领</h4>
@@ -349,12 +346,11 @@


 <hr>
-<p><i>&copy; Copyright <a href="http://www.rrsd.com";>Robert Ramey</a> 2002-2004.
+<p><i>© Copyright <a href="http://www.rrsd.com";>Robert Ramey</a> 2002-2004.
 Distributed under the Boost Software License, Version 1.0. (See
accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </i></p>



-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/serialization/doc/release.html  Tue Jun  2 01:35:23 2009
+++ /trunk/libs/serialization/doc/release.html  Sat Sep 12 00:52:19 2009
@@ -24,13 +24,15 @@
 <hr>
 <dl class="index">
   <dt><a href="#requirements">要求</a></dt>
- <dt><a href="#differences_1_37">与 1.37 版本的差别</a></dt><dt><a href="#differences_1_35">与版本 1.35 的差别</a></dt> + <dt><a href="#differences_1_39">与版本 1.39 的差别</a></dt><dt><a href="#differences_1_37">与版本 1.37&nbsp;的差别</a></dt><dt><a href="#differences_1_35">与版本 1.35 的差别</a></dt>
   <dt><a href="#differences_1_34">与版本 1.34 的差别</a></dt>
   <dt><a href="#differences_1_33">与版本 1.33 的差别</a></dt>
   <dt><a href="#differences_1_32">与版本 1.32 的差别</a></dt>
   <dt><a href="#todo">遗留问题</a></dt>
</dl>目前没有已知的 bugs。不过,由于编译器/库的原因,在某些编译器和库的组合 下有些测试不能通过。 -<h2><a name="requirements"></a>要求</h2>该库已在 Boost 版本 1.37 上测试。 <!-- +<h2><a name="requirements"></a>要求</h2>该库已针对 Boost 版本 1.39 和 1.40 进行了测试。 +<p>本库中的存档类作了一些变化。使用此指南来创建他们自己的存档类的用户会发 现,这些很可能不能再编译。这可以通过在对这些存档类进行了实例化的代码中作如下 修改来弥补。 +</p><p>旧代码:<br><code></code></p><pre> ...<br> #include &lt;boost/archive/impl/archive_pointer_iserializer.ipp&gt;<br> ...<br> template class detail::archive_pointer_iserializer&lt;naked_text_iarchive&gt; ;<br> ...<br> template class detail::archive_pointer_iserializer&lt;text_iarchive&gt; ;<br> </pre>应替 换为以下新代码:<code></code><pre> #include &lt;boost/archive/impl/archive_serializer_map.ipp&gt;<br> ...<br> template class detail::archive_serializer_map&lt;naked_text_iarchive&gt; ;<br> ...<br> template class detail::archive_serializer_map&lt;text_iarchive&gt; ;<br> </pre><!--
 <p>
The serialization library uses the boost spirit package to load XML archives. We have found that all tests pass using spirit 1.6x. Spirit 1.8 and higher does not work with
@@ -47,6 +49,12 @@
the directory which contains the version of spirit you plan to use is placed
 at the front of the list of include paths.
 -->
+<h2><a name="differences_1_39"></a>与 Boost 1.39 的差别</h2>
+<ul><li>现在可以通过一个类的指针来序列化一个对象,即使该类实现了自己的 <code style="white-space: normal;">new/delete</code>
+操作符。该功能在某些编译器上无效。
+</li><li>多态对象的序列化速度显著加快。
+</li></ul>在编写本文档时,所有以 TRAK
+条目报告的缺陷都已解决。有一些悬而未决的 TRAK 条目最好应该描述为特性请求。 请见 <a href="#todo">遗留问题</a>。 <h2><a name="differences_1_37"></a>与 Boost 1.37 的差别</h2>在本版本中没有 新的特性。在编写本文档时,所有以 TRAK 条目报告的缺陷都已解决。有一些悬而未决的 TRAK 条目最好应该描述为特性请求。 请见 <a href="#todo">遗留问题</a>。 <h2><a name="differences_1_36"></a>与 Boost 1.36 的差别</h2>该版本中没有新的特性。编写本文时,所有标记为 TRAK
 tickets 的缺陷都已解决。
@@ -90,8 +98,7 @@
 </li><li>修正了多个 bug。</li></ul>

 <h2><a name="todo"></a>遗留问题</h2>
-<ul><li>右值不能被序列化。可以对非跟踪类型实现这一点,但目前尚未实现。 </li><li>指针的指针目前还不能进行序列化。 </li><li>目前还不能通过指针序列化 一个类的对象,如果该类实现了它自己的 <code style="white-space: normal;">new/delete</code> 操作符。 -</li><li>包含特殊字符如 '\0' 的 <code style="white-space: normal;">std::string</code> 和 <code style="white-space: normal;">std::wstring</code> 不能序列化为 +<ul><li>右值不能被序列化。可以对非跟踪类型实现这一点,但目前尚未实现。 </li><li>指针的指针目前还不能进行序列化。</li><li>包含特殊字符如 '\0' 的 <code style="white-space: normal;">std::string</code> 和 <code style="white-space: normal;">std::wstring</code> 不能序列化为 XML,如果没有一个转义机制。目前还没有实现这样的转义机制。<code style="white-space: normal;"></code> </li><li>在这个版本中,修正了实现 <code style="white-space: normal;">std::map</code> 序列化的一个微妙的错误。但是不幸的是,这个修正使得那些不支持模板偏特化的编 译器无法编译 <code style="white-space: normal;">std::map</code> 的序列化。
=======================================
--- /trunk/libs/serialization/doc/smart_cast.html       Thu Sep  4 19:45:46 2008
+++ /trunk/libs/serialization/doc/smart_cast.html       Sat Sep 12 00:52:19 2009
@@ -1,22 +1,18 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>
-<html>
-<head>
-<!--
+<html><head><!--
 (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
 Use, modification and distribution is subject to the Boost Software
 License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
 -->
+
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

   <link rel="stylesheet" type="text/css" href="../../../boost.css">

   <link rel="stylesheet" type="text/css" href="style.css">

-  <title>Serialization - BOOST_STATIC_WARNING</title>
-</head>
-
-
+  <title>Serialization - BOOST_STATIC_WARNING</title></head>

 <body link="#0000ff" vlink="#800080">

@@ -100,7 +96,7 @@
 以上规则使得很难对函数模板的参数使用转型。考虑以下例子:

 <pre><code>
-#include &lt;boost/smart_cast.hpp&gt;
+#include &lt;boost/serialization/smart_cast.hpp&gt;

 struct top {
 };
@@ -186,10 +182,9 @@
 指定过的类型。

 <hr>
-<p><i>&copy; Copyright <a href="http://www.rrsd.com";>Robert Ramey</a> 2002-2004.
+<p><i>© Copyright <a href="http://www.rrsd.com";>Robert Ramey</a> 2002-2004.
 Distributed under the Boost Software License, Version 1.0. (See
accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </i></p>

-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/serialization/doc/state_saver.html      Thu Sep  4 19:45:46 2008
+++ /trunk/libs/serialization/doc/state_saver.html      Sat Sep 12 00:52:19 2009
@@ -1,22 +1,18 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>
-<html>
-<head>
-<!--
+<html><head><!--
 (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
 Use, modification and distribution is subject to the Boost Software
 License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
 -->
+
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

   <link rel="stylesheet" type="text/css" href="../../../boost.css">

   <link rel="stylesheet" type="text/css" href="style.css">

-  <title>Serialization - &lt;code&gt;state_saver&lt;/code&gt;</title>
-</head>
-
-
+ <title>Serialization - &lt;code&gt;state_saver&lt;/code&gt;</title></head>

 <body link="#0000ff" vlink="#800080">

@@ -65,7 +61,7 @@
 };
 </class></code></pre>
 完整的实现可以见
-<a target="state_saver" href="../../../boost/state_saver.hpp">这里</a>。下 面示范了如何使用它。 +<a target="state_saver" href="../../../boost/serialization/state_saver.hpp">这里</a>。下面示范了如何 使用它。

 <pre><code>
 #include &lt;boost/state_saver.hpp&gt;
@@ -90,10 +86,9 @@

 </p>
 <hr>
-<p><i>&copy; Copyright <a href="http://www.rrsd.com";>Robert Ramey</a> 2002-2004.
+<p><i>© Copyright <a href="http://www.rrsd.com";>Robert Ramey</a> 2002-2004.
 Distributed under the Boost Software License, Version 1.0. (See
accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </i></p>

-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/serialization/doc/static_warning.html Thu Sep 4 19:45:46 2008 +++ /trunk/libs/serialization/doc/static_warning.html Sat Sep 12 00:52:19 2009
@@ -21,7 +21,7 @@
     </td>
   </tr>
 </tbody></table>
-<hr>头文件 <code>&lt;boost/static_warning.hpp&gt;</code> 提供了一个宏
+<hr>头文件 <code>&lt;boost/serialization/static_warning.hpp&gt;</code> 提供 了一个宏 <code style="white-space: normal;">BOOST_STATIC_WARNING(x)</code>,它在整型 常量表达式 x 不为 true 时生成一个编译期警告信息。 <p>注意,如果该条件为 true,则该宏不生成任何代码或数据 - 并且该宏可以在名字 空间、类或函数等作用域中使用。如果在一个模板中使用,则表达式 x
 会在模板实例化的时候求值;对于验正模板参数特别有用。
=======================================
--- /trunk/libs/serialization/doc/strong_typedef.html Thu Sep 4 19:45:46 2008 +++ /trunk/libs/serialization/doc/strong_typedef.html Sat Sep 12 00:52:19 2009
@@ -1,22 +1,18 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>
-<html>
-<head>
-<!--
+<html><head><!--
 (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
 Use, modification and distribution is subject to the Boost Software
 License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
 -->
+
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

   <link rel="stylesheet" type="text/css" href="../../../boost.css">

   <link rel="stylesheet" type="text/css" href="style.css">

-  <title>Serialization - BOOST_STATIC_WARNING</title>
-</head>
-
-
+  <title>Serialization - BOOST_STATIC_WARNING</title></head>

 <body link="#0000ff" vlink="#800080">

@@ -54,10 +50,7 @@
 <p>使用 BOOST_STRONG_TYPEDEF
 可以达到此目的。
 </p>
-<pre>
-<a target="strong_typedef" href="../../../boost/strong_typedef.hpp">
-#include &lt;boost/strong_typedef.hpp&gt;
-</a>
+<pre><a target="strong_typedef" href="../../../boost/strong_typedef.hpp"><br></a><a href="../../../boost/strong_typedef.hpp" target="strong_typedef">#include &lt;boost/serialization/strong_typedef.hpp&gt;</a><a target="strong_typedef" href="../../../boost/strong_typedef.hpp"></a>

 BOOST_STRONG_TYPEDEF(int, a)
 void f(int x);  // (1) 处理普通整数的函数
@@ -87,10 +80,9 @@
<code style="white-space: normal;">BOOST_STRONG_TYPEDEF</code> 是一个宏,它 生成一个名为 "name" 的类,它包装了其基本类型的实例,并提供适当的转换操作 符,以使得新的类型可以与其包装的类型互为替换。

 <hr>
-<p><i>&copy; Copyright <a href="http://www.rrsd.com";>Robert Ramey</a> 2002-2004.
+<p><i>© Copyright <a href="http://www.rrsd.com";>Robert Ramey</a> 2002-2004.
 Distributed under the Boost Software License, Version 1.0. (See
accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </i></p>

-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/spirit/classic/doc/debugging.html       Tue Mar 31 01:07:16 2009
+++ /trunk/libs/spirit/classic/doc/debugging.html       Sat Sep 12 00:52:19 2009
@@ -189,7 +189,7 @@
 <p>Here's the original calculator with debugging features enabled:</p>
 <pre>
<code><span class=preprocessor>#define </span><span class=identifier>BOOST_SPIRIT_DEBUG </span><span class=comment>///$$$ DEFINE THIS BEFORE ANYTHING ELSE $$$/// - </span><span class=preprocessor>#include </span><span class=string>&quot;boost/spirit.hpp&quot; + </span><span class=preprocessor>#include </span><span class=string>&quot;boost/spirit/include/classic.hpp&quot;

     </span><span class=comment>/***/

=======================================
--- /trunk/libs/spirit/classic/doc/functional.html      Tue Mar 31 01:07:16 2009
+++ /trunk/libs/spirit/classic/doc/functional.html      Sat Sep 12 00:52:19 2009
@@ -119,10 +119,6 @@
<td class="table_cells">Generalized binders for function/object/pointers and
       member functions, from Peter Dimov</td>
   </tr>
- <td class="table_cells"><a href="http://www.boost.org/libs/compose/index.htm";>compose</a></td> - <td class="table_cells">Functional composition adapters for the STL, from Nicolai
-    Josuttis</td>
-  </tr>
<td class="table_cells"><a href="http://www.boost.org/libs/function/index.html";>function</a></td> <td class="table_cells">Function object wrappers for deferred calls or callbacks,
     from Doug Gregor</td>
=======================================
--- /trunk/libs/spirit/classic/example/intermediate/simple_xml/tag.hpp Tue Mar 31 01:07:16 2009 +++ /trunk/libs/spirit/classic/example/intermediate/simple_xml/tag.hpp Sat Sep 12 00:52:19 2009
@@ -12,14 +12,14 @@

 struct tag
 {
-    std::string        id;
+    std::string id;
     std::map<std::string,std::string> attributes;
     typedef boost::variant<
         std::string,
         boost::recursive_wrapper<tag>
         >
     variant_type;
-    std::list<variant_type>      children;
+    std::list<variant_type> children;
 };


=======================================
--- /trunk/libs/statechart/doc/acknowledgments.html     Thu Sep  4 19:45:46 2008
+++ /trunk/libs/statechart/doc/acknowledgments.html     Sat Sep 12 00:52:19 2009
@@ -1,12 +1,14 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html><head>
   <meta http-equiv="Content-Language" content="en-us">
-  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
   <meta name="GENERATOR" content="Microsoft FrontPage 6.0">
   <meta name="ProgId" content="FrontPage.Editor.Document">
   <link rel="stylesheet" type="text/css" href="../../../boost.css">

   <title>The Boost Statechart Library - Acknowledgments</title></head>
+
+
 <body link="#0000ff" vlink="#800080">
<table summary="header" border="0" cellpadding="7" cellspacing="0" width="100%">
     <tbody><tr>
@@ -15,9 +17,9 @@
       </td>

       <td valign="top">
-        <h1 align="center">Boost Statechart 库</h1>
-
-        <h2 align="center">Acknowledgments 鸣谢</h2>
+        <h1 align="center">The Boost Statechart Library</h1>
+
+        <h2 align="center">Acknowledgments &#40483;&#35874;</h2>
       </td>
     </tr>
   </tbody></table>
@@ -72,7 +74,7 @@
     Spalding, Rob Steward, Jonathan Turkanis and Matthew Vogt for
     participating in the review</li>

-    <li>Joaquín M López Muñoz for his broken allocator
+    <li>Joaqu&#237;n M L&#243;pez Mu&#241;oz for his broken allocator
     workaround in boost/detail/allocator_utilities.hpp</li>
   </ul>

@@ -81,19 +83,20 @@
   <p>Bardur Arantsson, Robert Bell, Bohdan, Wayne Chao, Topher Cooper,
Philippe David, Peter Dimov, Reece Dunn, John Fuller, Jeff Garland, Eugene
   Gladyshev, David A. Greene, Douglas Gregor, Gustavo Guerra, Aleksey
-  Gurtovoy, Federico J. Fernández, Iain K. Hanson, David B. Held,
-  Jürgen Hunold, Sean Kelly, Oliver Kowalke, Simon Meiklejohn, Jiang
- Miao, Johan Nilsson, Matthieu Paindavoine, Chris Paulse, Yuval Ronen, Chris
-  Russell, Rob Stewart, Kwee Heong Tan, Marcin Tustin, Vincent N. Virgilio,
-  Gang Wang, Steven Watanabe and Scott Woods.</p>
+  Gurtovoy, Federico J. Fern&#225;ndez, Iain K. Hanson, Steve Hawkes,
+  David B. Held, J&#252;rgen Hunold, Sean Kelly, Oliver Kowalke, Simon
+ Meiklejohn, Jiang Miao, Johan Nilsson, Matthieu Paindavoine, Chris Paulse, + Yuval Ronen, Chris Russell, Bryan Silverthorn, Rob Stewart, Kwee Heong Tan,
+  Marcin Tustin, Vincent N. Virgilio, Gang Wang, Steven Watanabe, Richard
+  Webb and Scott Woods.</p>
   <hr>

- <p><a href="http://validator.w3.org/check?uri=referer";><img src="http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01 Transitional" border="0" height="31" width="88"></a></p>
-
-  <p>Revised 05 January, 2008</p>
-
-  <p><i>Copyright © 2003-2008 <a href="contact.html">Andreas Huber
-  Dönni</a></i></p>
+ <p><a href="http://validator.w3.org/check?uri=referer";><img src="../../../doc/images/valid-html401.png" alt="Valid HTML 4.01 Transitional" border="0" height="31" width="88"></a></p>
+
+  <p>Revised 06 July, 2009</p>
+
+  <p><i>Copyright &#169; 2003-2008 <a href="contact.html">Andreas Huber
+  D&#246;nni</a></i></p>


   <p><i>Distributed under the Boost Software License, Version 1.0. (See
=======================================
--- /trunk/libs/statechart/doc/future_and_history.html Tue Mar 31 01:07:16 2009 +++ /trunk/libs/statechart/doc/future_and_history.html Sat Sep 12 00:52:19 2009
@@ -244,7 +244,12 @@
 (<span style="color: rgb(255, 0, 0);">红色</span>
 = 在正式审查过程中发现的点)</p>

-<p>1.38.0</p>
+<p>1.40.0</p>
+<ul><li>Fixed a bug that prevented the use of boost::ref() with
+fifo_scheduler&lt;&gt;::create_processor&lt;&gt;, reported by Steve Hawkes<code></code><br>修正了 boost::ref() 无法与 +fifo_scheduler&lt;&gt;::create_processor&lt;&gt; 共用的缺陷,由&nbsp;Steve Hawkes 报告 +</li><li>Fixed bug #3092 (regression test failures in VC10 beta 1), reported by +Richard Webb<code></code><br>修正缺陷 #3092 (在 VC10 beta 1 中回归测试失败 ),由&nbsp;Richard Webb 报告 </li></ul><p>1.38.0</p> <ul><li>Fixed gcc-4.3 warning in state_machine.hpp (ticket #2389), reported by Bryan Silverthorn<code></code><br>修正 gcc-4.3 在 state_machine.hpp 中的告警 (ticket #2389),由 Bryan Silverthorn 报告 </li></ul><p>1.36.0</p> <ul><li>Removed all permanent warning suppressions from library headers and avoided
@@ -1198,8 +1203,8 @@
 </ul>

 <hr>
-<p><a href="http://validator.w3.org/check?uri=referer";><img src="http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01 Transitional" border="0" height="31" width="88"></a></p><p>Revised 05 January, 2008</p>
-<p><i>Copyright © 2003-2008 <a href="contact.html">Andreas Huber
+<p><a href="http://validator.w3.org/check?uri=referer";><img src="http://www.w3.org/Icons/valid-html401"; alt="Valid HTML 4.01 Transitional" border="0" height="31" width="88"></a></p><p>Revised 27 June, 2009</p>
+<p><i>Copyright © 2003-2009&nbsp;<a href="contact.html">Andreas Huber
Dönni</a></i></p><p><i>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>)</i></p>
=======================================
--- /trunk/libs/statechart/doc/index.html       Thu Sep  4 19:45:46 2008
+++ /trunk/libs/statechart/doc/index.html       Sat Sep 12 00:52:19 2009
@@ -1,6 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
+<html><head>



@@ -35,9 +34,7 @@



-  <title>The Boost Statechart Library - Overview</title>
-</head>
-
+  <title>The Boost Statechart Library - Overview</title></head>

 <body link="#0000ff" vlink="#800080">

@@ -365,8 +362,8 @@


 <p>Whether and how Boost.Statechart will work on your platform is
-best determined on the <a href="http://engineering.meta-comm.com/boost-regression/CVS-RC_1_34_0/developer/statechart.html";>
-status page</a>. If the cells in your compilers column are all
+best determined on the <a href="http://www.boost.org/development/tests/release/developer/statechart.html";>release
+branch status page</a>. If the cells in your compilers column are all
 green, the library should work as advertised. Cells of different color
 indicate possible problems; follow the links for details. Before
employing the library I would also advise to run the tests (see <a href="#GettingStarted">Getting started</a>) on your
@@ -377,8 +374,8 @@
 example of such a surprise is Intel 9.0 with MSVC 7.1 base toolset,
 where DllTestNormal and DllTestNative pass in debug mode but fail in
 release mode.<br>
-要判断 Boost.Statechart 是否可以在你的平台上工作以及如何工作,最好的方法是 查看 <a href="http://engineering.meta-comm.com/boost-regression/CVS-RC_1_34_0/developer/statechart.html";> -状态页</a>。如果你所用的编译器列中的格子全是绿色的,则该库可以象所说的那样 正常工作。不同颜色的格子表示可能存在问题;具体请看相关链接。在使用本库之 前,我建议还应在你的特定平台上以所有在开发中要使用的模式(调试、发布等)运行所 有测试(状 +要判断 Boost.Statechart 是否可以在你的平台上工作以及如何工作,最好的方法是 查看 <a href="http://www.boost.org/development/tests/release/developer/statechart.html";> +发布分支状态页</a>。如果你所用的编译器列中的格子全是绿色的,则该库可以象所 说的那样正常工作。不同颜色的格子表示可能存在问题;具体请看相关链接。在使用本 库之前,我建议还应在你的特定平台上以所有在开发中要使用的模式(调试、发布等)运 行所有测试(状 态页中只列出了调试模式的结果)。测试时的编译器开关与以后开发中所用的开关越接 近,以后出现问题的可能性越小。这类问题的一个例子是,Intel
 9.0 加 MSVC 7.1 基本工具集,其中的 DllTestNormal 和 DllTestNative
 在调试模式通过了测试而在发布模式下则失败了。</p>
@@ -518,8 +515,8 @@



-<p><i>Copyright &copy; 2003-<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y" startspan -->2007<!--webbot bot="Timestamp" endspan i-checksum="778" -->
-<a href="contact.html">Andreas Huber D&ouml;nni</a></i></p>
+<p><i>Copyright © 2003-<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y" startspan -->2007<!--webbot bot="Timestamp" endspan i-checksum="778" -->
+<a href="contact.html">Andreas Huber Dönni</a></i></p>



@@ -529,5 +526,4 @@



-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/timer/index.html        Thu Sep  4 20:10:05 2008
+++ /trunk/libs/timer/index.html        Sat Sep 12 00:52:19 2009
@@ -1,6 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
+<html><head>



@@ -32,9 +31,7 @@



-  <title>Boost Timer Library</title>
-</head>
-
+  <title>Boost Timer Library</title></head>

 <body bgcolor="#ffffff" text="#000000">

@@ -126,7 +123,7 @@



-  <li>测试程序 <a href="timer_test.cpp">timer_test.cpp</a></li>
+  <li>测试程序 <a href="test/timer_test.cpp">timer_test.cpp</a></li>



@@ -148,7 +145,7 @@


 <hr>
-<p>&copy; Copyright Beman Dawes, 2001</p>
+<p>© Copyright Beman Dawes, 2001</p>



@@ -168,5 +165,4 @@



-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/tokenizer/tokenizerfunction.htm Thu Sep  4 20:10:05 2008
+++ /trunk/libs/tokenizer/tokenizerfunction.htm Sat Sep 12 00:52:19 2009
@@ -1,6 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
+<html><head>


   <meta http-equiv="Content-Language" content="en-us">
@@ -16,10 +15,7 @@



-  <title>TokenizerFunction Concept</title>
-</head>
-
-
+  <title>TokenizerFunction Concept</title></head>

<body alink="#ff0000" bgcolor="#ffffff" link="#0000ee" text="#000000" vlink="#551a8b">

@@ -210,7 +206,7 @@
<td><tt>next</tt> &#21644; <tt>end</tt> &#26159;&#21516;&#19968;&#24207;&#21015;&#30340;&#26377;&#25928;&#36845;&#20195;&#22120;&#12290;<tt>next</tt> &#26159;&#20989;&#25968;&#21487;&#33258;&#30001;&#20462;&#25913;&#30340;&#24341;&#29992;&#12290;tok &#26159;&#24050;&#26500;&#36896;&#30340;&#12290;</td>


- <td>&#36820;&#22238;&#20540;&#34920;&#31034;&#26159;&#21542;&#22312;&#24207;&#21015; (next,end] &#20013;&#25214;&#21040;&#26032;&#21333;&#35789;</td> + <td>&#36820;&#22238;&#20540;&#34920;&#31034;&#26159;&#21542;&#22312;&#24207;&#21015; [next,end) &#20013;&#25214;&#21040;&#26032;&#21333;&#35789;</td>


<td>&#22914;&#26524;&#36820;&#22238;&#20540;&#20026; true, &#21017;&#26032;&#21333;&#35789;&#34987;&#36171;&#32473; tok. next &#24635;&#26159;&#34987;&#26356;&#26032;&#20026;&#19979;&#19968;&#27425;&#35843;&#29992;&#26102;&#24320;&#22987;&#20998;&#26512;&#30340;&#20301;&#32622;&#12290;</td>
@@ -282,7 +278,7 @@



-<p><i>Copyright &copy; 2001 John R. Bandela</i></p>
+<p><i>Copyright &#169; 2001 John R. Bandela</i></p>



@@ -290,5 +286,4 @@
   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>)</i></p>

-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html Thu Sep 4 19:58:01 2008 +++ /trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html Sat Sep 12 00:52:19 2009
@@ -1,6 +1,5 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
+<html><head>



@@ -10,8 +9,8 @@



-  <title>is_base_of</title>
- <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+
+ <title>is_base_of</title><link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">



@@ -31,9 +30,7 @@



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

<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">

@@ -233,7 +230,7 @@


   <p>
- <code class="computeroutput"><span class="identifier">is_base_of</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> 是 <code class="computeroutput"><span class="keyword">bool</span></code> 类型。 + <code class="computeroutput"><span class="identifier">is_base_of</span><span class="special">&lt;</span><span class="identifier">T, T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> 是 <code class="computeroutput"><span class="keyword">bool</span></code> 类型。
           </p>


@@ -262,7 +259,7 @@

       <td align="right">

- <div class="copyright-footer">Copyright &copy; 2000, 2006 Adobe Systems Inc, David Abrahams, + <div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek
@@ -291,5 +288,4 @@
 </div>


-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html Thu Sep 4 19:58:01 2008 +++ /trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html Sat Sep 12 00:52:19 2009
Binary file, no diff available.
=======================================
--- /trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html Thu Sep 4 19:58:01 2008 +++ /trunk/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html Sat Sep 12 00:52:19 2009
@@ -1,12 +1,11 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
+<html><head>

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


-  <title>is_same</title>
- <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+
+ <title>is_same</title><link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">

   <meta name="generator" content="DocBook XSL Stylesheets V1.73.2">

@@ -16,8 +15,7 @@

   <link rel="prev" href="is_polymorphic.html" title="is_polymorphic">

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

<body alink="#0000ff" bgcolor="white" link="#0000ff" text="black" vlink="#840084">

@@ -111,7 +109,7 @@

 <div class="blockquote">
 <blockquote class="blockquote">
- <p><code class="computeroutput"><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> 是 + <p><code class="computeroutput"><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code><code class="computeroutput"><span class="identifier"></span></code> 是
   <code class="computeroutput"><span class="keyword">bool</span></code>
 类型。</p>
 </blockquote>
@@ -125,7 +123,7 @@
       <td align="left"></td>

       <td align="right">
- <div class="copyright-footer">Copyright &copy; 2000, 2006 Adobe Systems Inc, David Abrahams, + <div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek
@@ -146,5 +144,4 @@
<a accesskey="p" href="is_polymorphic.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="is_scalar.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>

-</body>
-</html>
+</body></html>
=======================================
--- /trunk/libs/type_traits/doc/html/index.html Tue Jun  2 01:35:23 2009
+++ /trunk/libs/type_traits/doc/html/index.html Sat Sep 12 00:52:19 2009
@@ -301,7 +301,7 @@
     <tr>

       <td align="left">
- <p><small>Last revised: February 21, 2008 at 13:51:18 +0000</small></p>
+      <p><small>Last revised: March 30, 2009 at 18:02:46 +0100</small></p>
       </td>

       <td align="right">
=======================================
--- /trunk/libs/wave/doc/class_reference_tokentype.html Sat Nov 29 02:17:08 2008 +++ /trunk/libs/wave/doc/class_reference_tokentype.html Sat Sep 12 00:52:19 2009
@@ -56,7 +56,7 @@
in the <tt>Wave</tt> library too. If you need to use your own token type, it is required to implement the interafce described below.<br>以下将描述在 <tt>Wave</tt> 库中预定义的单词类型,它可以与两个也是在 <tt>Wave</tt> 库中预定义的C++ lexer共用。如果你需要使用自己的单词类型,则必须实现下述接口。</p> -<h2><b><a name="header_synopsis"></a>Header <a href="svn.boost.org/trac/boost/browser/trunk/boost/wave/cpplexer/cpp_lex_token.hpp">wave/cpplexer/cpp_lex_token.hpp</a> +<h2><b><a name="header_synopsis"></a>Header</b> <a href="https://svn.boost.org/trac/boost/browser/trunk/boost/wave/cpplexer/cpp_lex_token.hpp";>wave/cpplexer/cpp_lex_token.hpp</a><b>
   synopsis 头文件概要</b></h2>
<pre><span class="keyword">namespace</span> boost {<br><span class="keyword">namespace</span> wave {<br><span class="keyword">namespace</span> cpplexer {<br><br> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Position&gt;<br> <span class="keyword">class</span> lex_token <br> {<br> <span class="keyword">public</span>:<br> <span class="keyword">typedef</span> <span class="keyword">std::basic_string</span><char>&lt;char&gt; string_type;<br> <span class="keyword">typedef</span> Position position_type;<br> <br> <a href="class_reference_tokentype.html#constructor">lex_token</a>();<br> <a href="class_reference_tokentype.html#constructor">lex_token</a>(token_id id, string_type <span class="keyword">const</span> &amp;value, <br> PositionT <span class="keyword">const</span> &amp;pos);<br><br> // accessors<br> <a href="class_reference_tokentype.html#operator_tokenid">operator token_id</a>() <span class="keyword">const</span>;<br> string_type const &amp;<a href="class_reference_tokentype.html#get_value">get_value</a>() <span class="keyword">const</span>;<br> position_type const &amp;<a href="class_reference_tokentype.html#get_position">get_position</a>() <span class="keyword">const</span>;<br> void <a href="class_reference_tokentype.html#set_token_id">set_token_id</a> (token_id id);<br> void <a href="class_reference_tokentype.html#set_value">set_value</a> (string_type <span class="keyword">const</span> &amp;newval);<br> void <a href="class_reference_tokentype.html#set_position">set_position</a> (position_type <span class="keyword">const</span> &amp;pos);<br> };<br><br>} <span class="comment">// namespace cpplexer</span>
 }   <span class="comment">// namespace wave</span>

Other related posts:

  • » [boost-doc-zh] r327 committed - 转换至1.40.0,第10批,完成以下库:... - codesite-noreply