forked from boostorg/fusion
some updates
[SVN r36555]
This commit is contained in:
@ -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"><</span><span class="keyword">int</span><span class="special">,</span><EFBFBD><span class="keyword">char</span><span class="special">></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"><</span><span class="keyword">int</span><span class="special">,</span>
|
||||
<span class="keyword">char</span><span class="special">></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"><</span><span class="keyword">void</span> <span class="special">(*)(</span><span class="keyword">int</span><span class="special">)></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>
|
||||
|
Reference in New Issue
Block a user