    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
     <channel>
        <title>ACCU  :: Letter To The Editor</title>
        <link>https://members.accu.org/index.php/journals/398</link>
        <description>Professionalism in Programming</description>
        <dc:language>en-us</dc:language> 
        <dc:creator>Administrator</dc:creator> 
        <admin:generatorAgent rdf:resource="http://www.xaraya.org" /> 
        <admin:errorReportsTo rdf:resource="mailto:webeditor@accu.org" />
       <sy:updatePeriod>hourly</sy:updatePeriod>
       <sy:updateFrequency>1</sy:updateFrequency>
       <docs>http://backend.userland.com/rss</docs>


        <h2>Journal Articles</h2>


<div class="xar-mod-head"><span class="xar-mod-title">Overload Journal #49 - Jun 2002 + Letters to the Editor</span></div>

<table border="0" cellpadding="1" cellspacing="0">
    <tbody>
    <tr>
        <td valign="top">
            Browse in :
       </td>
       <td valign="top">

                                            <a href="https://members.accu.org/index.php/journals/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/journals/c76/">Journals</a>

                     &gt;                         <a href="https://members.accu.org/index.php/journals/c78/">Overload</a>

                     &gt;                         <a href="https://members.accu.org/index.php/journals/c196/">49</a>
                    (8)
<br />

                                            <a href="https://members.accu.org/index.php/journals/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/journals/c184/">Journal Columns</a>

                     &gt;                         <a href="https://members.accu.org/index.php/journals/c186/">LettersEditor</a>
                    (132)
<br />

                                            <a href="https://members.accu.org/index.php/journals/c196-186/">Any of these categories</a>

                    -                        <a href="https://members.accu.org/index.php/journals/c196+186/">All of these categories</a>
<br />
</td>
   </tr>
   </tbody>
</table>




<div class="xar-error">
   <p>
 <strong>Note:</strong> when you create a new publication type,
the articles module will automatically use the templates
<em>user-display-[publicationtype].xt</em>
and <em>user-summary-[publicationtype].xt</em>.
If those templates do not exist when you try to preview or display a new article,
you'll get this warning :-)  Please place your own templates in themes/<em>yourtheme</em>/modules/articles . The templates will get the extension .xt there. </p>
</div>
<div class="xar-norm xar-standard-box-padding">
   <h1><strong>Title:</strong>&nbsp;Letter To The Editor</h1>
<p><strong>Author:</strong>&nbsp;</p>
<p>
<strong>Date:</strong> 26 June 2002 17:46:10 +01:00 or Wed, 26 June 2002 17:46:10 +01:00</p>
<p><strong>Summary:</strong>&nbsp;</p>
<p><strong>Body:</strong>&nbsp;<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e18" id="d0e18"></a></h2>
</div>
<p>Hi,</p>
<p>There was no mention in Overload 48 that my article, &quot;Function
Follows Form&quot;, was previously published online as part of the CUJ
C++ Experts Forum online. The omission is not major, but it is
worth pointing out that it appeared originally for November 2000
following the summer break after the untimely demise of C++ Report.
Its prior publication is relevant because in the nearly two years
since it was written - and much longer for the code and basic
design - a couple of things, albeit minor, have changed in my
thinking:</p>
<div class="orderedlist">
<ol type="1">
<li>
<p>I used the name '<tt class="literal">function_ptr</tt>' to
represent the zeroargument arbitrary function and function object
adaptor with smart pointer semantics. I now prefer the name
'<tt class="literal">any_function</tt>', which is more in keeping
with my use of the name '<tt class="literal">any</tt>' for any
arbitrary value, and the prefix '<tt class="literal">any_</tt>' for
other wrappers in a similar style, e.g. '<tt class=
"literal">any_iterator</tt>' and '<tt class=
"literal">any_string</tt>'.</p>
</li>
<li>
<p>In the article I mentioned that the technique of using a
nontemplated base class to provide uniform access to a common
family of variations expressed as a derived class template was
based on the External Polymorphism pattern. I was careful to ensure
that I said &quot;is based on&quot; rather than &quot;is&quot; because at the time I
was not comfortable that the pattern's intent was appropriate, even
though its structure was. Well, following some tentative repetition
of idea and the &quot;three strikes and you're out&quot; approach, I have
decided that it is categorically not the right pattern to
reference. To the best of my knowledge, the pattern has not been
properly documented elsewhere, although it is used extensively. I
plan to document the pattern more thoroughly at some point, either
under the name Polymorphic Wrapper, which captures the fact that it
converts one form of polymorphism (templating) to another (virtual
functions), or as Parameterized Derived Class, a more accurate
albeit prosaic name. Generally it preserves the degree of
polymorphism, but reduces the compile-time polymorphism by one axis
to introduce one of runtime polymorphism.</p>
</li>
</ol>
</div>
</div>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
