    <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  :: Epilogue</title>
        <link>https://members.accu.org/index.php/articles/1361</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>




<div class="xar-mod-head"><span class="xar-mod-title">Journal Editorial + Overload Journal #1 - Apr 1993</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/articles/">All</a>

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

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c185/">Editorial</a>
<br />

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

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

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

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c220/">01</a>
<br />

                                            <a href="https://members.accu.org/index.php/articles/c185-220/">Any of these categories</a>

                    -                        <a href="https://members.accu.org/index.php/articles/c185+220/">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;Epilogue</h1>
<p><strong>Author:</strong>&nbsp;</p>
<p>
<strong>Date:</strong> 30 April 1993 11:49:00 +01:00 or Fri, 30 April 1993 11:49:00 +01:00</p>
<p><strong>Summary:</strong>&nbsp;</p>
<p><strong>Body:</strong>&nbsp;<p>Well, that's it for this edition of Overload. I hope you enjoyed
reading it, and hopefully gleaned some knowledge from it. If there are
any features that you do not like, please let me know. I do want to
tailor the magazine to members' requirements (though it will not be
possible to please all of the people all of the time...).</p>
<p>Recently, I was fortunate enough to hear an excellent discourse on
Bjarne Stroustrup's Name Space proposal, given by Francis Glassborow.
In the next edition of Overload, I would like to present some of the
ideas in the Name Space proposal, together with a discussion of RTTI
(Run Time Type Identification), another proposed extension to the C++
language. As a prelude to the Name Space article, I feel I must say a
few words on name-mangling, as the under&shy;standing of name-mangling
can aid the understanding of Name Space Management and the problems
that it needs to address.</p>
<p>The name-mangling discussed here is based on Borland's
implementation of C++. The authoritative reference for this subject is
Borland's Open Architecture Handbook.</p>
<p>So what is name-mangling? The compiler has the problem that it must
produce unique names for all data and func&shy;tions so that the linker
can resolve all links. This is not a problem in the C language as there
is no overloading and no polymorphism. In C++, however, the linker has
the problem of resolving multiply-overloaded member functions on the
basis of not only the function name, but also the argument list.</p>
<p>We also have the situation where the same function name may appear
in many classes or even many times within a single class, in addition
to any virtual functions in derived classes.</p>
<p>If this were left to the linker, it would create massive headaches
as the linker requires unique names. This is solved by mangling the
names of functions and classes so that the linker is able to
successfully resolve any ambiguities.</p>
<p>The resulting encoded (mangled) names take on one of four forms:</p>
<ol>
  <li>@classname@memberfunctionname$argumentlist</li>
  <li>@functionname$argumentlist</li>
  <li>@classname@staticdataname</li>
  <li>@classname@</li>
</ol>
<p>The first three should be self-explanatory; the last one is used to
handle the virtual table for the class in question. The $argumentlist
is composed of a series of codes to specify each of the argument types
and their order in the argu&shy;ment list. This should the have the
effect that all callable units can be uniquely identified.</p>
<p>This does get a little more complicated for templates where values
and parameterised types become involved, but this has been resolved by
indicating a template with a % symbol instead of a @.</p>
<p>Where the system does fall down is in the situation where two class
libraries are used and at some point they use the same function/member
function name and argument list. Even though the libraries have come
from differing sources, the linker will see the first one as the right
one (How many class libs are based on Object?). This is where
namespaces would solve the problem. How? Read the next edition of
Overload and find out what's been proposed.</p>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
