ns/releases/performance-3.0.5/source/stlport/doc
2005-07-14 17:38:07 +00:00
..
images Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
auto_configure.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
bug_report.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
buglist.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
compiler_readmes.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
configure.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
copyrights.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
cvs.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
debug_mode.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
doc.css Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
eh_testsuite.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
exception_safety.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
index.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
install.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
license.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
platforms.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
projects.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
README.aCC.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
README.BC.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
README.CW.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
README.DEC.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
README.gcc.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
README.MPW.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
README.os390.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
README.pow.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
README.sgi40.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
README.sunpro.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
README.VC++.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
README.xlC.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
release_notes.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
select_io.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
sgi_stl.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
story.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
testsuite.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
thanks.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
use_stlport.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
vendor_interface.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00
wrappers.html Released as a server only patch 3.0.5 2005-07-14 17:38:07 +00:00

<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for xlC &amp; Visual Age C++ users</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">

        <span class="heading">Note for xlC &amp; Visual Age C++ users</span>
        <hr>
        <h2>Known problems</h2>
        <h4>Compiling</h4>
        xlC &amp; VAC++ require explicit template notation such as <tt>template_class&lt;Param&gt;</tt>
        where most others (conformant) accept just <tt>template_class</tt>
        (inside template method bodies, etc):
        <p><tt>template &lt;class Param&gt; class template_class {</tt> <br>
        <tt>template_class foo() ; // error for xlC</tt> <br>
        <tt>template_class&lt;Param&gt; foo() // OK</tt> <br>
        <tt>.....</tt> <br>
        <tt>}</tt></p>
        <p>That is being worked around in this adaptation, but may cause
        problems when porting template code from other platforms.</p>
        <h4>Linking</h4>
        Repository handling in this compilers is imperfect, so you may
        experience various problems on link stage. The problems are generally of
        two kinds : unresolved symbols and duplicate symbols. The latter problem
        is not fatal, since the symbols are weak in that case. It may cause
        unacceptable code bloat when it comes to large projects, however. To
        overcome this problem, for all IBM compilers, STLport 3.2 enables separate 
        compilation with non-inline template members defined in .c file. <b>Note : you should enable corresponding
        option in the compiler (/Ft+ or equivalent) to get use of this mode, as it is being enabled conditionally 
        based on the presence of builin macro ___TEMPINC__.</b><br>When compiling templates splitted to *.h/*.c
        scheme, these compilers produce better results (around 50% code size reduction, less duplicate symbols).
        The problem with undefined symbols is also caused by imperfect
        repository handling, but it may require manual intervention. General
        rule is : if you get "unresolved symbol" errors, explicit
        instantiation will most likely help, for example:
        <p><tt>Unresolved:</tt> <br>
        <tt>__default_alloc_template&lt;0, 0&gt;::allocate(unsigned long)</tt> <br>
        <tt>__default_alloc_template&lt;0, 0&gt;::deallocate(void*, unsigned
        long) &gt;</tt></p>
        <p>To work around this problem, just instantiate <tt>__default_alloc_template&lt;0,0&gt;</tt>
        explicitly in some module:</p>
        <p><tt>template class __default_alloc_template&lt;0,0&gt;;</tt></p>
        <p>&nbsp;</p>

</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>