some updates

[SVN r36555]
This commit is contained in:
Joel de Guzman
2007-01-01 02:23:51 +00:00
parent ef48d728ef
commit 2be540e903
200 changed files with 1744 additions and 1447 deletions

View File

@ -26,7 +26,7 @@
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="fusion.notes"></a><a href="notes.html" title="Notes">Notes</a></h2></div></div></div>
<a name="fusion.notes.recursive_inlined_functions"></a><h3>
<a name="id614107"></a>
<a name="id613822"></a>
<a href="notes.html#fusion.notes.recursive_inlined_functions">Recursive Inlined
Functions</a>
</h3>
@ -39,17 +39,17 @@
compiler limit of course). Compile time complexity remains linear.
</p>
<a name="fusion.notes.overloaded_functions"></a><h3>
<a name="id614176"></a>
<a name="id613890"></a>
<a href="notes.html#fusion.notes.overloaded_functions">Overloaded Functions</a>
</h3>
<p>
Associative sequences use function overloading to implement membership testing
and type associated key lookup. This amounts to constant runtime and amortized
constant compile time complexities. There is an overloaded function, <tt class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">k</span><span class="special">)</span></tt>, for each key <span class="emphasis"><em>type</em></span><EFBFBD><tt class="computeroutput"><span class="identifier">k</span></tt>. The compiler chooses the appropriate function
constant compile time complexities. There is an overloaded function, <tt class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">k</span><span class="special">)</span></tt>, for each key <span class="emphasis"><em>type</em></span> <tt class="computeroutput"><span class="identifier">k</span></tt>. The compiler chooses the appropriate function
given a key, <tt class="computeroutput"><span class="identifier">k</span></tt>.
</p>
<a name="fusion.notes.tag_dispatching"></a><h3>
<a name="id614254"></a>
<a name="id613968"></a>
<a href="notes.html#fusion.notes.tag_dispatching">Tag Dispatching</a>
</h3>
<p>
@ -101,7 +101,7 @@
</li>
</ol></div>
<a name="fusion.notes.extensibility"></a><h3>
<a name="id614626"></a>
<a name="id614340"></a>
<a href="notes.html#fusion.notes.extensibility">Extensibility</a>
</h3>
<p>
@ -136,7 +136,7 @@
it very cheap to pass around.
</p>
<a name="fusion.notes.element_conversion"></a><h3>
<a name="id614924"></a>
<a name="id614638"></a>
<a href="notes.html#fusion.notes.element_conversion">Element Conversion</a>
</h3>
<p>
@ -148,7 +148,8 @@
<a href="sequences/generation/functions/make_list.html" title="make_list"><tt class="computeroutput"><span class="identifier">make_list</span></tt></a><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="char">'x'</span><span class="special">)</span>
</pre>
<p>
returns a <a href="sequences/containers/list.html" title="list"><tt class="computeroutput"><span class="identifier">list</span></tt></a><tt class="computeroutput"><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span><EFBFBD><span class="keyword">char</span><span class="special">&gt;</span></tt>.
returns a <a href="sequences/containers/list.html" title="list"><tt class="computeroutput"><span class="identifier">list</span></tt></a><tt class="computeroutput"><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span>
<span class="keyword">char</span><span class="special">&gt;</span></tt>.
</p>
<p>
There are a few exceptions, however.
@ -158,7 +159,7 @@
</p>
<p>
Array arguments are deduced to reference to const types. For example
<sup>[<a name="id615075" href="#ftn.id615075">14</a>]</sup>
<sup>[<a name="id614789" href="#ftn.id614789">14</a>]</sup>
:
</p>
<pre class="programlisting">
@ -191,7 +192,7 @@
<a href="sequences/containers/list.html" title="list"><tt class="computeroutput"><span class="identifier">list</span></tt></a><span class="special">&lt;</span><span class="keyword">void</span> <span class="special">(*)(</span><span class="keyword">int</span><span class="special">)&gt;</span>
</pre>
<a name="fusion.notes.boost__ref"></a><h3>
<a name="id615494"></a>
<a name="id615208"></a>
<a href="notes.html#fusion.notes.boost__ref">boost::ref</a>
</h3>
<p>
@ -234,9 +235,9 @@
</p>
<div class="footnotes">
<br><hr width="100" align="left">
<div class="footnote"><p><sup>[<a name="ftn.id615075" href="#id615075">14</a>] </sup>
<div class="footnote"><p><sup>[<a name="ftn.id614789" href="#id614789">14</a>] </sup>
Note that the type of a string literal is an array of const characters,
not <tt class="computeroutput"><span class="keyword">const</span><EFBFBD><span class="keyword">char</span><span class="special">*</span></tt>. To get <a href="sequences/generation/functions/make_list.html" title="make_list"><tt class="computeroutput"><span class="identifier">make_list</span></tt></a> to create a <a href="sequences/containers/list.html" title="list"><tt class="computeroutput"><span class="identifier">list</span></tt></a> with an element of a non-const
not <tt class="computeroutput"><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span></tt>. To get <a href="sequences/generation/functions/make_list.html" title="make_list"><tt class="computeroutput"><span class="identifier">make_list</span></tt></a> to create a <a href="sequences/containers/list.html" title="list"><tt class="computeroutput"><span class="identifier">list</span></tt></a> with an element of a non-const
array type one must use the <tt class="computeroutput"><span class="identifier">ref</span></tt>
wrapper (see <a href="notes.html#fusion.notes.boost__ref"><tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span></tt></a>).
</p></div>