123
This commit is contained in:
40
STLPORT/doc/README.BC.html
Normal file
40
STLPORT/doc/README.BC.html
Normal file
@@ -0,0 +1,40 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: STLport - Note For Borland 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 Borland C++ / C++ Builder Users</span>
|
||||
<p> </p>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
<ul>
|
||||
<li>This release is known to have problems with BC 5.0x.
|
||||
Directory <b>STLport/BC50/</b> contains some extra files Borland C++ 5.x
|
||||
expects to see on the path. Make sure you put <b>STLport/BC50 </b>in<br>
|
||||
your search path before <b>STLport </b>main directory. The problems still persist
|
||||
with <string>, so BC50 is configured to use native one. You may face other problems with
|
||||
5.0. Please direct your bug reports and workarounds to the Forum.</li>
|
||||
<li>This release should work out-of-the box for Borland C++ Builder 4. Builder 3 may require
|
||||
some configuration adjustments to enable features added in BCB 3. You may also utilize <iostream.h>
|
||||
wrapper in stlport/BCB directory to compile programs using old-style header.</li>
|
||||
<li>With 5.0, you may also encounter problems with too long symbols when compiling
|
||||
with debug information. To handle this, try defining <b><tt>_STLP_USE_ABBREVS</tt></b>
|
||||
in <tt>stlcomp.h</tt>.</li>
|
||||
<li>If your program is multi-threaded, be sure to define macro <b><tt>_REENTRANT
|
||||
</tt></b>for proper synchronization (if you are <i>using SGI node
|
||||
allocator. If you are using new_alloc or malloc_alloc, you won't
|
||||
need that)</i>.</li>
|
||||
<li>You may encounter problems using new-style BC++ 5.0 <b><tt><iostream>
|
||||
</tt></b>in mix with SGI STL <b><tt><string>, <stdexcept>
|
||||
</tt></b>without defining <b>_STLP_USE_OWN_NAMESPACE.</b></li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h2>Migration notes</h2>
|
||||
You should experience no other problems migrating from BC++ STL to SGI
|
||||
STL. <br>
|
||||
Default <b><tt>allocator<T></tt></b> in this adaptation should be
|
||||
fully functional.
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h4>Versions prior to 4.52</h4>
|
||||
Borland C++ versions older than 4.52 have not been tested. Probably it
|
||||
would work with 4.50-4.51.
|
||||
|
||||
</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>
|
||||
28
STLPORT/doc/README.CW.html
Normal file
28
STLPORT/doc/README.CW.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note For Metrowerks CodeWarrior 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 Metrowerks CodeWarrior Users</span>
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
<ul>
|
||||
<li>You may have to edit relative/full path to CodeWarrior native
|
||||
headers .</li>
|
||||
<li>To avoid editing the headers mentioned above, Metrowerks users
|
||||
should put the "STLport" directory in the "Metrowerks
|
||||
Standard Library" directory, and add the "STLport"
|
||||
directory as the first item in the system search paths of the
|
||||
projects that wish to use it.</li>
|
||||
<li>If you want your code to be portable, you should avoid explicit
|
||||
usage of <tt>reverse_iterator<Iterator,T,T&,T*,Distance></tt>.</li>
|
||||
<li>It's better to use coherent set of headers in the project: <b>all
|
||||
new-style</b>, including STL ones;</li>
|
||||
<li><b>IMPORTANT</b> : You should either have _STLP_USE_OWN_NAMESPACE
|
||||
defined, or you should recompile CodeWarrior runtime libraries after
|
||||
you installed STLport.</li>
|
||||
<li>For earlier versions, you have to copy <tt><functional></tt>
|
||||
to <tt><functional.h></tt>. <tt><functional.h></tt> is
|
||||
not provided in distribution since it clobbers <tt><function.h></tt>
|
||||
on 8.3 systems</li>
|
||||
</ul>
|
||||
|
||||
</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>
|
||||
37
STLPORT/doc/README.DEC.html
Normal file
37
STLPORT/doc/README.DEC.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Notes for DEC CXX 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 DEC CXX users</span>
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
DEC CXX require explicit template notation such as <tt>template_class<Param></tt>
|
||||
where most others (conformant) accept just <tt>template_class</tt>
|
||||
(inside template method bodies, etc):
|
||||
<p><tt>template <class Param> class template_class {</tt> <br>
|
||||
<tt>template_class foo() ; // error for DEC</tt> <br>
|
||||
<tt>template_class<Param> 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. Use the same
|
||||
name of formal parameter : <tt>Param </tt>in all method's outside
|
||||
definitions.</p>
|
||||
<h4>Linking</h4>
|
||||
Repository handling of this compiler is imperfect, so you may experience
|
||||
various problems on link stage. Linker problems problems are generally
|
||||
of two kinds : unresolved symbols and duplicate symbols. The latter
|
||||
problem was never reported to occur with DEC CXX. The problem with
|
||||
undefined symbols is also 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<0, 0>::allocate(unsigned long)</tt> <br>
|
||||
<tt>__default_alloc_template<0, 0>::deallocate(void*, unsigned
|
||||
long) ></tt></p>
|
||||
<p>To work around this problem, just instantiate <tt>__alloc<0,0></tt>
|
||||
explicitly in some module:</p>
|
||||
<p><tt>template class __default_alloc_template<0,0>;</tt></p>
|
||||
<p>Another way to solve this problem may be use of <tt>-pts </tt>compiler
|
||||
option, but I'm not sure it works in all cases.</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>
|
||||
35
STLPORT/doc/README.MPW.html
Normal file
35
STLPORT/doc/README.MPW.html
Normal file
@@ -0,0 +1,35 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for Apple MPW 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 Apple MPW users</span>
|
||||
|
||||
<p align="right">
|
||||
03/22/2001<br>
|
||||
Tsutomu Yoshida<br>
|
||||
Minokamo, Japan
|
||||
</p>
|
||||
|
||||
<h2>Installation</h2>
|
||||
For the installation of STLport package, please follow the instruction contained in <b>"ReadMe.MPW"</b> located in <b>"test:regression:"</b> folder.
|
||||
The MPW shell scripts embedded in this document will set up the shell variable <b>"{STL}"</b> which points to the main STLport package folder "stlport:".
|
||||
A small MPW shell script named <b>"!STL_Folder_SetUp"</b> will be placed in "{MPW}StartUp Items:" so that this "{STL}" will be automatically reestablished
|
||||
at the subsequent MPW startups.
|
||||
The script also set up <b>an alias to MPW's "{CIncludes}"</b> at the same level as "stlport:" which is used to look up the native C headers refered from STLport.
|
||||
|
||||
<p>The installation script will build and install stlport library binary which contains iostreams code and other commonly used class binaries.
|
||||
The library binaries are stored in <b>"{STL}:lib:"</b> folder with the names:<br>
|
||||
<ul>
|
||||
<li><b>"STLportLib.68K.DBG.o"</b> : 68K (SCpp) with debugging code</li>
|
||||
<li><b>"STLportLib.68K.o"</b> : 68K (SCpp) without debugging code</li>
|
||||
<li><b>"STLportLib.PPC.DBG.o"</b> : PPC (MrCpp) with debugging code</li>
|
||||
<li><b>"STLportLib.PPC.o"</b> : PPC (MrCpp) without debugging code</li>
|
||||
</ul>
|
||||
<br>
|
||||
For the sample setup of makefile utilizing STLport and accompanying library binary, please refer to:<br>
|
||||
<ul>
|
||||
<li>"{STL}:src:MrCpp.mak" </li>
|
||||
<li>"{STL}:test:regression:MrCpp.mak"</li>
|
||||
<li>"{STL}:src:SCpp.mak"</li>
|
||||
<li>"{STL}:test:regression:SCpp.mak"</li>
|
||||
</ul>
|
||||
</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>
|
||||
75
STLPORT/doc/README.VC++.html
Normal file
75
STLPORT/doc/README.VC++.html
Normal file
@@ -0,0 +1,75 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note For Visual 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 Visual C++ Users</span>
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
<ul>
|
||||
<li>If your program is multi-threaded, make sure you defined macro <b><tt>_REENTRANT
|
||||
</tt></b>to enable proper synchronization (if you are <i>using SGI
|
||||
node allocator. If you are using new_alloc or malloc_alloc, you
|
||||
won't need that)</i>.</li>
|
||||
<li>You may encounter problems using <b><tt><iostream> </tt></b>in
|
||||
mix with SGI STL <b><tt><string>, <stdexcept> </tt></b>without
|
||||
defining <b>_STLP_USE_OWN_NAMESPACE.</b> Using <b>_STLP_USE_OWN_NAMESPACE
|
||||
</b>is the most safe way to cooperate with new I/O<br>
|
||||
library and is definitely recommended unless you recompile the whole
|
||||
C++ std library with STLport installed.</li>
|
||||
<li><b><tt>_STLP_USE_EXCEPTIONS</tt></b> is being defined
|
||||
automatically if the compiler defined <b><tt>_CPPUNWIND</tt></b>
|
||||
macro ("<b><tt>/GX</tt></b>" option). So you should not
|
||||
worry about it.</li>
|
||||
<li>There were reports that Visual C++ 4.0 have problems with
|
||||
namespaces in certain cases. Due to that, <b><tt>_STLP_NO_NAMESPACES</tt></b>
|
||||
defined for it in <b><stlcomp.h></b>.</li>
|
||||
<li>You may encounter problems with too long symbols when compiling
|
||||
with debug information. To handle this, try defining <b><tt>_STLP_USE_ABBREVS</tt></b>
|
||||
in <tt>stlcomp.h</tt>.</li>
|
||||
<li>You may experience problems with default SGI node allocator. I had
|
||||
no such problems, though. Default node allocator is quite fast, so I
|
||||
wouldn't recommend disabling it without serious reason. However, if
|
||||
it causes problems, define <b><tt>_STLP_USE_MALLOC</tt></b> or <b><tt>_STLP_USE_NEWALLOC</tt></b>
|
||||
to get bare malloc()-based or new()-based default allocator.</li>
|
||||
<li>If your program is multi-threaded, make sure you defined macro <b><tt>_REENTRANT
|
||||
</tt></b>to enable proper synchronization.</li>
|
||||
<li><b>[ VC++ 4.2 and higher] </b>This version allows use of new-style
|
||||
<b><iostream>, <string></b> with STLport , as well as
|
||||
the old-style <iostream.h> . The default is new <iostream>
|
||||
usage.</li>
|
||||
<br>
|
||||
If you want to use old-style <b><iostream.h></b> in your
|
||||
project:
|
||||
<ul>
|
||||
<li>define macro <b>_STLP_NO_NEW_IOSTREAMS</b> in <b><stl_user_config.h></b>
|
||||
or at the command line.</li>
|
||||
</ul>
|
||||
If you are going to use new-style <b><iostream></b> without
|
||||
defining _STLP_USE_OWN_NAMESPACE:
|
||||
<ul>
|
||||
<li>You may have to edit relative (or set full) path to VC++
|
||||
native headers<b><tt> </tt></b>in <stl_user_config.h>. Using
|
||||
native versions is necessary to avoid clashes with compiled code
|
||||
in C++ runtime library.</li>
|
||||
<li>In the whole project, use coherent set of headers : <b>all
|
||||
new-style.</b></li>
|
||||
<br>
|
||||
<b> </b>
|
||||
</ul>
|
||||
<li>You may also try <a href="http://www.sirius.com/~ouchida">SGI STL
|
||||
adapted for MSVC++ 5.0 only,</a> by Wayne Ouchida. (Note : looks
|
||||
like it's out of date and discontinued. It doesn't provide
|
||||
debug support and other extensions of this adaptation).</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h2>Migration notes</h2>
|
||||
You should experience no other problems migrating from VC++ STL to SGI
|
||||
STL. Default <b><tt>allocator<T></tt></b> in this adaptation is
|
||||
fully functional.
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h4>Versions prior to 4.0</h4>
|
||||
Visual C++ older than 4.0 won't compile STL. You have to upgrade.
|
||||
<p> </p>
|
||||
<hr>
|
||||
|
||||
</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>
|
||||
22
STLPORT/doc/README.aCC.html
Normal file
22
STLPORT/doc/README.aCC.html
Normal file
@@ -0,0 +1,22 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for HP ANSI C++ Compiler 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 HP ANSI C++ Compiler users</span>
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Configuring</h4>
|
||||
<tt>stlcomp.h</tt> provides recognition section usable with <tt>aCC 1.06</tt>.
|
||||
You should be able to use unconfigured STL distribution with it. If you
|
||||
are using more recent version, you might want to enable more features
|
||||
(see comments in <tt>stlcomp.h</tt>). Basically, <tt>"configure"</tt>
|
||||
script was reported to work with aCC. However, your aCC version might
|
||||
contain bugs (not showing in simple example) that could prevent your
|
||||
code from compiling. In this case, refer to <tt>stlcomp.h</tt> to figure
|
||||
out more reliable set of configuration switches.
|
||||
<h4>Compiling</h4>
|
||||
aCC enforces stricter name lookup checking than many other compilers.
|
||||
Also it uses initial template name lookup scheme different from many
|
||||
compilers. This scheme prevents any use of inherited typenames without
|
||||
explicit "using" directive, etc.
|
||||
|
||||
</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>
|
||||
91
STLPORT/doc/README.gcc.html
Normal file
91
STLPORT/doc/README.gcc.html
Normal file
@@ -0,0 +1,91 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for GCC 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 GCC users</span>
|
||||
<hr>
|
||||
<h3>GCC versions</h3>
|
||||
STLport works with the following GCC flavours:
|
||||
<p>gcc-3.0 Note : "wrapper mode" w/o STLport iostreams doesn't work with 3.0, as gcc 3.0 implements Koenig lookup properly, which leads to ambiguity errors when trying to wrap new-style gcc iostreams into STLport namespace.</p>
|
||||
<p>gcc-2.95.x Note: on some platforms (HP, AIX) gcc-2.95 does not implement automatic instantiation of static template data members. Please refer to gcc-2.7 section below for workaround. </p>
|
||||
<p><a href="http://www.cygnus.com/egcs">Cygnus "egcs":</a>
|
||||
Based on gcc-2.8 development tree, it provides <b>better </b>template
|
||||
support than in FSF gcc-2.8.1, and many modern commercial compilers. It
|
||||
features full-blown default template parameters, namespaces, partial
|
||||
template specialization and member template methods. EGCS also offers
|
||||
greatly improved EH support. STLport works with egcs just fine.
|
||||
Though it comes with SGI STL, <br>
|
||||
you may still want to use STLport because of debug mode.</p>
|
||||
<p>gcc-2.8.1: About the same as egcs. <br>
|
||||
<i>( Note : you may encounter problems compiling with 2.8.1 due to bugs
|
||||
in partial template specialization. Just #define _STLP_PARTIAL_SPECIALIZATION_BUG
|
||||
then ) </i>.</p>
|
||||
<p>If you use egcs or 2.8.1 or higher, you may stop reading here.</p>
|
||||
<p> </p>
|
||||
<hr width="100%">
|
||||
<h3>GCC 2.7.x :</h3>
|
||||
Althought it does work with STLport, it has poor template support
|
||||
compared to other modern compilers. <br>
|
||||
If you do generic programming, it's definitely time to upgrade.
|
||||
<h3>Workaround strategy</h3>
|
||||
To address GCC inability to auto-instantiate static template data
|
||||
members, the following workaround introduced:
|
||||
<p>Instantiations of required static data members provided in
|
||||
corresponing headers under <i>#ifdef </i><tt>__PUT_STATIC_DATA_MEMBERS_HERE</tt>
|
||||
( luckily, in this version of STL their amount doesn't depend on how
|
||||
many different instantiations you have ). You should <tt>#define __PUT_STATIC_DATA_MEMBERS_HERE</tt><i>
|
||||
</i>in <b>one</b> of your compilation unit ( or specify it in <i>CFLAGS </i>for
|
||||
it ) <b>before </b>including any STL header. That should not affect
|
||||
'good' compilers in any way.</p>
|
||||
<p><b>Moreover,</b> <b>gcc on platforms that use ELF object file format
|
||||
or GNU linker, will work without this hack</b>. gcc's <b><i>__attribute__((weak))__</i></b>
|
||||
used instead as workaround. That makes gcc usable in portable way with
|
||||
STL on many platforms ( Linux/Solaris/etc. ).</p>
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
See <a href="#Migration%20notes">Migration notes</a>.
|
||||
<h4>Linking</h4>
|
||||
When using <i>__attribute__((weak))__<b> </b></i>, you may run into
|
||||
linker errors like : <b>'multiple definition of `global constructors
|
||||
keyed to __malloc_alloc_template<0>::oom_handler'</b>. <br>
|
||||
That indicates that you have defined some global objects in your source.
|
||||
gcc then produce a bug treating weak symbol declared in header as real
|
||||
global. <br>
|
||||
The workaround is simple : just put some dummy global variable <b>before
|
||||
</b>including STL headers. That worked for me. <br>
|
||||
Another way is to <tt>#define _STLP_WEAK_ATTRIBUTE 0 </tt>in <b><i>stlconf.h</i></b>
|
||||
and use <tt>__PUT_STATIC_DATA_MEMBERS_HERE</tt> scheme described above.
|
||||
<p>On some non-ELF systems (<b>SunOS 4.x</b>) "configure" sets
|
||||
<tt>_STLP_WEAK_ATTRIBUTE. </tt>Unfortunately, this won't work unless you
|
||||
are using GNU linker. To justify this, <tt>#define _STLP_WEAK_ATTRIBUTE
|
||||
0 </tt>in <b><i>stlconf.h</i></b> and use <tt>__PUT_STATIC_DATA_MEMBERS_HERE</tt>
|
||||
scheme described above.</p>
|
||||
<p>You may have troubles getting _linker_ errors compiling complex cases
|
||||
without <i>-frepo</i>. If that problem occurs, try <i>-frepo</i> flag.
|
||||
This flag is generally preferred unless you are compiling really short
|
||||
examples. Be sure to supply -frepo switch on the link stage, too.</p>
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h2><a name="Migration%20notes"></a>Migration notes</h2>
|
||||
You may have to define operators ==() and <() on all classes you are
|
||||
using with most containers, even if they are not really used. That is
|
||||
the gcc bug. Another bug is that gcc won't find this operators defined
|
||||
in base class, you have to redefine them. Don't define any of
|
||||
!=(),>(),<=(),>=;() operators for your classes - gcc have bugs
|
||||
in resolution and report that as ambiguity with templates in <i>function.h.</i>
|
||||
<p>If you use <tt><string></tt> from <tt>libg++</tt> the described
|
||||
problem of the definition of <tt>!=, >, <=</tt> and <tt>>=</tt>
|
||||
occurs: something like: "<tt>ambiguous template instantiation in
|
||||
sinst.h</tt>" The concrete solution is to disable the definitions
|
||||
of those operators in <tt>g++-include/std/sinst.h (line 59):</tt></p>
|
||||
<p><tt>__DOB (==)</tt> <br>
|
||||
<tt>//__DOB (!=)</tt> <br>
|
||||
<tt>__DOB (>)</tt> <br>
|
||||
<tt>//__DOB (>)</tt> <br>
|
||||
<tt>//__DOB (<=)</tt> <br>
|
||||
<tt>//__DOB (<=)</tt> <br>
|
||||
<tt>//__DOB (>=)</tt></p>
|
||||
<p>This would be a general fix due to gcc problems. The other possible
|
||||
solution is to <tt>#include <string></tt> after STL headers.</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>
|
||||
132
STLPORT/doc/README.os390.html
Normal file
132
STLPORT/doc/README.os390.html
Normal file
@@ -0,0 +1,132 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for IBM OS/390 C/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 IBM OS/390 C/C++ Users</span>
|
||||
<p> </p>
|
||||
<hr>
|
||||
<br>
|
||||
<b><i><font face="Arial,Helvetica,Geneva"><font size="+1">Known Problems</font></font></i></b>
|
||||
<p><b>Compiling:</b></p>
|
||||
<ol>
|
||||
<li>OS/390 C/C++ requires explicit template notation such as
|
||||
template_class<Param> where most other conformant compilers
|
||||
only accept template_class (inside template method bodies, etc.):</li>
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> template <class Param> class
|
||||
template_class {<br>
|
||||
<br>
|
||||
template_class foo();
|
||||
// error for OS390 C/C++<br>
|
||||
<br>
|
||||
template_class<Param> foo();
|
||||
// OK<br>
|
||||
<br>
|
||||
...<br>
|
||||
<br>
|
||||
};</font></p>
|
||||
This adaptation works around the above OS/390 C/C++ requirement, but
|
||||
may cause compatibility problems when porting template code from other
|
||||
platforms.
|
||||
<li>OS/390 C++, does not allow passing an extern "C"
|
||||
function pointer as an argument to a C++ function. For example:</li>
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> template <class Result> <br>
|
||||
<br>
|
||||
pointer_to_void_function<Result>
|
||||
ptr_gen(Result (*x)());<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
p = ptr_gen(rand); // error for OS/390 C/C++</font></p>
|
||||
In the above template, <i>ptr_gen</i> takes a function pointer as its
|
||||
argument and returns a function pointer adaptor (a type of function
|
||||
object), and <i>rand</i> is an extern "C" library pointer.
|
||||
This is not allowed because C and C++ linkage is different on OS/390
|
||||
C/C++.
|
||||
<p>To work around this problem, provide a C++ wrapper around the
|
||||
extern "C" function and pass the C++ wrapper instead:</p>
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> int cxxrand(void) { return rand();}<br>
|
||||
<br>
|
||||
p = ptr_gen(cxxrand);
|
||||
// OK</font></p>
|
||||
<li>OS/390 C++ does not allow functions to be declared with a function
|
||||
or an array as its return type:</li>
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> template <class InputIterator, class
|
||||
OutputIterator,class result)<br>
|
||||
<br>
|
||||
OutputIterator
|
||||
adjacent_difference(InputIterator first, <br>
|
||||
<br>
|
||||
InputIterator
|
||||
last, <br>
|
||||
<br>
|
||||
OutputIterator
|
||||
result);<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
main() {<br>
|
||||
<br>
|
||||
int number[10];<br>
|
||||
<br>
|
||||
int different[5];<br>
|
||||
<br>
|
||||
adjacent_difference(number,<br>
|
||||
<br>
|
||||
number
|
||||
+ 5,<br>
|
||||
<br>
|
||||
different);
|
||||
// error for OS/390 C/C++<br>
|
||||
<br>
|
||||
}</font></p>
|
||||
In the above example, the compiler attempts to create an instantiation
|
||||
that returns an array <i>int[]</i>, which is not allowed in OS/390
|
||||
C/C++:
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> int[] adjacent_difference(int*, int*, int*)</font></p>
|
||||
To work around this problem, cast the <i>int</i> array to pointer to <i>int</i>:
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> adjacent_difference(number,number + 5, (int *)
|
||||
different); // OK</font></p>
|
||||
</ol>
|
||||
<b>Linking:</b>
|
||||
<p>Repository handling in the compiler is imperfect, so you may
|
||||
experience various problems during the link step. The problems are
|
||||
generally of two kinds: duplicate symbols or unresolved symbols. The
|
||||
duplicate symbol problem is not fatal, since the symbols are weak
|
||||
(compiler generated) in that case. When it comes to large projects,
|
||||
however, it may cause unacceptable code bloat (extra code generated by
|
||||
the compiler when it separates the template instantiation files into the
|
||||
TEMPINC directory). To overcome this problem, this adaptation simulates <i>separate
|
||||
template implementation</i>. Compiling templates using the tempinc
|
||||
compile option, minimizes code bloat as there are less duplicate
|
||||
symbols. The problem with undefined symbols is also caused by imperfect
|
||||
repository handling, but may require manual intervention. The general
|
||||
rule is: <b>if you get <i>unresolved symbol</i> errors, explicit
|
||||
instantiation will most likely help</b>. For example:</p>
|
||||
<p><i>Unresolved:</i></p>
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> __default_alloc_template<0,0>::allocate(unsigned
|
||||
long)<br>
|
||||
<br>
|
||||
__default_alloc_template<0,0>::deallocate(void *, unsigned
|
||||
long)</font></p>
|
||||
To work around this problem, just instantiate __default_alloc_template<0,0>
|
||||
explicitly in a module:
|
||||
<p><br>
|
||||
<br>
|
||||
<font size="+0"> template class __default_alloc_template<0,0>;</font></p>
|
||||
<h2><font size="+0">Useful Links</font></h2>
|
||||
<p><font size="+0">Check out :</font></p>
|
||||
<p><a href="http://www.software.ibm.com/ad/c390/cmvsstlp.htm">http://www.software.ibm.com/ad/c390/cmvsstlp.htm</a></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>
|
||||
76
STLPORT/doc/README.pow.html
Normal file
76
STLPORT/doc/README.pow.html
Normal file
@@ -0,0 +1,76 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for PowerSoft's Power++ 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 PowerSoft's Power++ Users</span>
|
||||
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<p><tt>Subject: Re: SGI STL Adaptation Page updated (STLport 2.031
|
||||
release) <br>
|
||||
Date: Wed, 1 Oct 1997 16:30:48 -0400 <br>
|
||||
From: Doni_Grande@ethyl.com (Doni Grande) </tt><br>
|
||||
</p>
|
||||
<p><tt>This version (2.031) seems to work with Powersoft's Power++ 2.0
|
||||
compiler, which is based on the Watcom C/C++ 11.0 compiler. The STL
|
||||
debug mode still won't compile, but everything else seems to work.
|
||||
Power++ does some memory management in debug mode that needs to be
|
||||
worked around, and there is a nuisance warning message that needs to be
|
||||
suppressed. I generally load all the STL headers I use in a single
|
||||
header file, and do the workarounds needed there. The STL.HPP file I use
|
||||
is below. </tt></p>
|
||||
<p><tt>// Power++ 2.0 include file <br>
|
||||
// <br>
|
||||
// stl.hpp -- Include all the files in the standard SGI STL distribution
|
||||
<br>
|
||||
// </tt></p>
|
||||
<p><tt>#ifndef _STL_HPP_INCLUDED <br>
|
||||
#define _STL_HPP_INCLUDED</tt></p>
|
||||
<p><tt>// Define symbol to indicate SGI STL <br>
|
||||
#ifndef __SGISTL <br>
|
||||
#define __SGISTL <br>
|
||||
#endif</tt></p>
|
||||
<p><tt>// The following turns off warning 549: <br>
|
||||
// 'sizeof' operand contains compiler generated information // This
|
||||
warning remains disabled after loading this file.</tt></p>
|
||||
<p><tt>#pragma warning 549 9;</tt></p>
|
||||
<p><tt>/* Redefine the C++ "new" and "delete"
|
||||
operators to not go through the component library's memory checker. */ <br>
|
||||
#if defined( _DEBUG ) && defined( new ) <br>
|
||||
# undef new <br>
|
||||
# undef delete <br>
|
||||
# define _REDEFINE_WNEW <br>
|
||||
#endif</tt></p>
|
||||
<p><tt>// If can get STL debug working, use the following <br>
|
||||
// #if defined( _DEBUG ) <br>
|
||||
// # define _STLP_DEBUG 1 // #endif</tt></p>
|
||||
<p><tt>// Get rid of Watcom's min and max macros <br>
|
||||
#undef min <br>
|
||||
#undef max</tt></p>
|
||||
<p><tt>// Get configuration defines #include "stlcomp.h"</tt></p>
|
||||
<p><tt>#include "algo.h" <br>
|
||||
#include "bvector.h" <br>
|
||||
#include "deque.h" <br>
|
||||
#include "heap.h" <br>
|
||||
#include "list.h" <br>
|
||||
#include "map.h" <br>
|
||||
#include "multimap.h" <br>
|
||||
#include "multiset.h" <br>
|
||||
#include "pair.h" <br>
|
||||
#include "set.h" <br>
|
||||
#include "stack.h" <br>
|
||||
#include "tempbuf.h" <br>
|
||||
#include "vector.h"</tt></p>
|
||||
<p><tt>// SGI-specific additions <br>
|
||||
#include "rope.h" <br>
|
||||
#include "slist.h" <br>
|
||||
#include "function.h" <br>
|
||||
#include "hash_map.h" <br>
|
||||
#include "hash_set.h"</tt></p>
|
||||
<p><tt>#ifdef _REDEFINE_WNEW <br>
|
||||
# include "wnew.hpp" <br>
|
||||
# undef _REDEFINE_WNEW <br>
|
||||
#endif</tt></p>
|
||||
<p><tt>#endif</tt></p>
|
||||
<p> </p>
|
||||
<hr>
|
||||
|
||||
</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>
|
||||
15
STLPORT/doc/README.sgi40.html
Normal file
15
STLPORT/doc/README.sgi40.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for SGI's CC v4 Compiler 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 SGI's CC v4 Compiler users</span>
|
||||
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Patches required</h4>
|
||||
- You have to make sure that you have installed the C++_non_shared_libs
|
||||
package (from the "C++ translator" CD).
|
||||
<p>- You must then install CC patch 1599 (you may also installed patches
|
||||
1260,1600, and 1628 though they should not be necessary).</p>
|
||||
<p> </p>
|
||||
<hr>
|
||||
|
||||
</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>
|
||||
191
STLPORT/doc/README.sunpro.html
Normal file
191
STLPORT/doc/README.sunpro.html
Normal file
@@ -0,0 +1,191 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Notes for SUNPro 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">Notes for SUNPro C++ Users</span>
|
||||
<p> </p>
|
||||
<h2>Common Notes</h2>
|
||||
For all SUN compilers, STLport nables separate compilation with
|
||||
non-inline template members defined in .c file. That is supposed to
|
||||
help with code bloat, but does not make a big difference for SUN compilers.
|
||||
So, if having any problems with this mode, just turn off _STLP_LINK_TIME_INSTANTIATION switch.
|
||||
Installation: please note that even if you do not use STLport iostreams, you still have to go to "src" subdirectory and do "make" or at least "make prepare" to produce additional .SUNWCCh files necessary for compilation)
|
||||
|
||||
<h2>Notes for SUNPro C++ users</h2>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Bugs (Note for SUNPro C++ 4.2 or before)</h4>
|
||||
<br><b>Note: proposed workaround is implemented for this bug for all relevant STLport code.
|
||||
However, please be aware of this bug because it might affect your own code.</b>
|
||||
<br>Perry R. Ross 3/12/99<br>
|
||||
pross@platinum.com<br>
|
||||
<p>
|
||||
The SunPro 4.2 compiler has a serious problem handling string literals<br>
|
||||
passed as arguments to inline functions. Each time the dummy argument
|
||||
representing the string literal appears in the function, it receives a
|
||||
new address, just as if you'd typed the literal at that spot in the
|
||||
function. Normally this is harmless except for wasting a bit of<br>
|
||||
memory, but if the function attempts to do any pointer arithmetic, it
|
||||
fails horribly. Here is a small program that duplicates the problem:<br>
|
||||
<br>
|
||||
#include <iostream.h><br>
|
||||
<br>
|
||||
inline void func(char *s) {<br>
|
||||
// Each of these will print a different address for s<br>
|
||||
// if the arg was a string literal.<br>
|
||||
cout << "address of " << s << " is
|
||||
" << (int) s << endl;<br>
|
||||
cout << "address of " << s << " is
|
||||
" << (int) s << endl;<br>
|
||||
cout << "address of " << s << " is
|
||||
" << (int) s << endl;<br>
|
||||
<br>
|
||||
// This will print a negative number if the arg is a literal.<br>
|
||||
cout << "the difference between (s+1) and s is "
|
||||
<< ( (s+1) - s) << endl;<br>
|
||||
}</p>
|
||||
<p>int<br>
|
||||
main(int argc, char *argv[]) {<br>
|
||||
func("hello");<br>
|
||||
char *bye = "goodbye";<br>
|
||||
func(bye);<br>
|
||||
return 0;<br>
|
||||
}<br>
|
||||
<br>
|
||||
Here is a demo program that shows how this impacts STL:<br>
|
||||
<br>
|
||||
#include <iostream.h><br>
|
||||
#include <string><br>
|
||||
<br>
|
||||
string str("hello");<br>
|
||||
<br>
|
||||
int main(int argc, char *argv[]) {<br>
|
||||
cout << str << endl;<br>
|
||||
return 0;<br>
|
||||
}<br>
|
||||
<br>
|
||||
This will print "hellohello" on a broken compiler version.<br>
|
||||
<br>
|
||||
The fix for this is to add this line to the beginning of func():<br>
|
||||
<br>
|
||||
s = s;<br>
|
||||
<br>
|
||||
This somehow makes the compiler stop creating new copies of the string,<br>
|
||||
and if you compile with -O, it seems to completely optimize away,<br>
|
||||
so there is no runtime penalty. There is a substantial ugliness<br>
|
||||
penalty, though, as this line has to be in every inline function that <br>
|
||||
can be called with a string constant.<br>
|
||||
The fix could be done with the preprocessor macro
|
||||
__SUN_INLINE_STRING_LITERAL_BUG, which should be empty on all platforms
|
||||
but SUNPRO version 4.2 or before (/<b>fbp</b>/this change is not in 3.12
|
||||
yet, as I still hope to find less ugly solution, maybe with compiler
|
||||
flags /<b>fbp</b>/):</p>
|
||||
<ul>
|
||||
<li><b>#define __SUN_INLINE_STRING_LITERAL_BUG(x) x=x;</b> (for
|
||||
Sun CC)</li>
|
||||
<li><b>#define __SUN_INLINE_STRING_LITERAL_BUG(x) ( </b>for other
|
||||
compilers)</li>
|
||||
</ul>
|
||||
<p>.<br>
|
||||
You should be careful passing string literals with SunPro CC (frankly -
|
||||
NEVER do that), as the above bug appear in any inline function (not only
|
||||
template ones).</p>
|
||||
<h4>Compiling</h4>
|
||||
<ul>
|
||||
<li>If your program is multi-threaded, make sure you defined macro <b><tt>_REENTRANT
|
||||
</tt></b>to enable proper synchronization . That will enable
|
||||
use of Solaris threads synchronization support. If you are usizg
|
||||
Pthreads in your program, define <b>_PTHREADS</b> for STLport.</li>
|
||||
<li>If your project has multiple directories structure, it is better
|
||||
to use <b>-ptr</b> option to keep all template databese in one
|
||||
place.</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h2>Note for SUNPro C++ 4.1 users</h2>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
C++ 4.1 have problems recognizing types nested in template classes when
|
||||
parsing declarations. For example , the following construct fails
|
||||
(suppose STL vector is a base type for derived_vector ):
|
||||
<p><tt>derived_vector<int> years;</tt> <br>
|
||||
<tt>derived_vector<int>::iterator i;</tt></p>
|
||||
<p>To work around this problem completely, you should repeat those
|
||||
typedefs from base class that you are going to use in any way:</p>
|
||||
<p><tt>template <class T> class derived_vector : public
|
||||
vector<T> {</tt> <br>
|
||||
<tt>typedef vector<T>::iterator iterator;</tt> <br>
|
||||
<tt>...</tt></p>
|
||||
<p>STL code itself is now free of this problem.</p>
|
||||
<p>C++ 4.1 may also suffer from optimization bugs when using exception
|
||||
handling. If your application doesn't use exceptions, you'd better use <tt>-noex</tt>
|
||||
option along with <tt>_STLP_NO_EXCEPTIONS</tt> flag.</p>
|
||||
<h4>Linking</h4>
|
||||
You may have troubles getting linker errors compiling multiple targets
|
||||
in one directory ( for example, running cygnus testsuite). That is a bug
|
||||
in handling Templates.DB dependencies. Known solutions are :
|
||||
<p>a) for one-file tests, specify option <b>-pto</b> <i>(one-file-mode)</i>
|
||||
option to turn off database completely. Option <b>-pts</b><i>(single-file-mode)</i>
|
||||
doesn't fix all problems.</p>
|
||||
<p>b) for complex projects, use separate Templates.DB directories for
|
||||
different targets.</p>
|
||||
<p> </p>
|
||||
<hr width="100%">
|
||||
<h2>Notes for SUNPro C++ 4.0.1 users</h2>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Version problems</h4>
|
||||
If your CC 4.0.1 cannot compile <a href="testsuite.html">testsuite</a>,
|
||||
most likely you are using out-of date version. You should download
|
||||
patches for 4.0.1 (SparcCompilers WorkShop 3.0.1) from SunPro site :
|
||||
<p><b>Solaris 2.x :</b></p>
|
||||
<p><a href="http://www.sun.com/workshop/tnb/sparc2x/patch.html">http://www.sun.com/workshop/tnb/sparc2x/patch.html</a>
|
||||
(SPARC/Solaris 2.x) . You should look for patches 101242-12 &
|
||||
101242-14 ( 101242-12 is required to work with 101242-12).</p>
|
||||
<p><b>Sunos 4.1.x:</b></p>
|
||||
<p><a href="http://www.sun.com/smcc/solaris-migration/cmc.products.970709/XCM/101914-14.tar.Z">http://www.sun.com/smcc/solaris-migration/cmc.products.970709/XCM/101914-14.tar.Z</a><a href="http://www.sun.com/workshop/tnb/sparc1x/patch.html">
|
||||
(SPARC/SunOS 4.1.x)</a></p>
|
||||
<p><a href="http://www.sun.com/workshop/tnb/sparc1x/patch.html">http://www.sun.com/workshop/tnb/sparc1x/patch.html</a>
|
||||
(SPARC/SunOS 4.1.x). Look for 101914-20.</p>
|
||||
<h4>Compiling</h4>
|
||||
C++ 4.0.1 have problems recognizing types nested in template classes
|
||||
when parsing declarations. For example , the following construct fails
|
||||
(suppose STL vector is a base type for derived_vector ):
|
||||
<p><tt><font size="-1">derived_vector<int> years;</font></tt> <br>
|
||||
<tt><font size="-1">derived_vector<int>::iterator i;</font></tt></p>
|
||||
<p>To work around this problem completely, you should repeat those
|
||||
typedefs from base class that you are going to use in any way:</p>
|
||||
<p><tt><font size="-1">template <class T> class derived_vector :
|
||||
public vector<T> {</font></tt> <br>
|
||||
<tt><font size="-1">typedef vector<T>::iterator iterator;</font></tt>
|
||||
<br>
|
||||
<tt><font size="-1">...</font></tt></p>
|
||||
<p>More severe problems arise when given template argument's typedefs
|
||||
are used as template arguments for base class. The example is function
|
||||
adaptors from <b>function.h</b> . Refer to workarounds for binders &
|
||||
composers to see how it can be hanled ( proposed by "Martin
|
||||
Abernethy" <gma@paston.co.uk> ).</p>
|
||||
<p>C++ 4.01 may also suffer from optimization bugs when using exception
|
||||
handling. If your application doesn't use exceptions, you'd better use <tt>-noex</tt>
|
||||
option along with <tt>_STLP_NO_EXCEPTIONS</tt> flag.</p>
|
||||
<h4>Linking</h4>
|
||||
You may still have to use explicit instantiations and/or specific
|
||||
template database controls for complex cases to avoid "<i>unresolved
|
||||
symbol</i>" linker errors.
|
||||
<p>You may have troubles getting linker errors compiling multiple
|
||||
targets in one directory ( for example, running cygnus testsuite). That
|
||||
is a bug in handling Templates.DB dependencies. Known solutions are :</p>
|
||||
<p>a) for one-file tests, specify option <b>-pto</b> <i>(one-file-mode)</i>
|
||||
option to turn off database completely. Option <b>-pts</b><i>(single-file-mode)</i>
|
||||
doesn't fix all problems.</p>
|
||||
<p>b) for complex projects, use separate Templates.DB directories for
|
||||
different targets.</p>
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h2>Migration notes</h2>
|
||||
You should experience no other problems migrating from HP STL to SGI
|
||||
STL.
|
||||
<p> </p>
|
||||
<hr>
|
||||
<h4>Versions prior to 4.1</h4>
|
||||
For info on SUNPro C++ 4.0.1, see README.sunpro401. SUNPro C++ older
|
||||
than 4.0.1 won't compile STL. You have to upgrade.
|
||||
|
||||
</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>
|
||||
41
STLPORT/doc/README.xlC.html
Normal file
41
STLPORT/doc/README.xlC.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Note for xlC & 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 & Visual Age C++ users</span>
|
||||
<hr>
|
||||
<h2>Known problems</h2>
|
||||
<h4>Compiling</h4>
|
||||
xlC & VAC++ require explicit template notation such as <tt>template_class<Param></tt>
|
||||
where most others (conformant) accept just <tt>template_class</tt>
|
||||
(inside template method bodies, etc):
|
||||
<p><tt>template <class Param> class template_class {</tt> <br>
|
||||
<tt>template_class foo() ; // error for xlC</tt> <br>
|
||||
<tt>template_class<Param> 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<0, 0>::allocate(unsigned long)</tt> <br>
|
||||
<tt>__default_alloc_template<0, 0>::deallocate(void*, unsigned
|
||||
long) ></tt></p>
|
||||
<p>To work around this problem, just instantiate <tt>__default_alloc_template<0,0></tt>
|
||||
explicitly in some module:</p>
|
||||
<p><tt>template class __default_alloc_template<0,0>;</tt></p>
|
||||
<p> </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>
|
||||
88
STLPORT/doc/auto_configure.html
Normal file
88
STLPORT/doc/auto_configure.html
Normal file
@@ -0,0 +1,88 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Running configure</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">Running "configure"</span>
|
||||
|
||||
<font size="1"><em><strong>by Boris Fomitchev</strong></em></font>
|
||||
|
||||
<h3>Configuring STLport for new compiler with UNIX shell</h3>
|
||||
|
||||
<p><i>Note: this document describes the procedure ot tuning STLport for
|
||||
new compiler, not the one that is already supported. If your compiler is listed
|
||||
as supported, this is absolutely unnecessary.</i></p>
|
||||
|
||||
<p>STLport comes with "configure" shell script to help in the
|
||||
initial step to tune the library for a new compiler.
|
||||
It sets up stlconf.h configuration header
|
||||
with proper flags depending on features of the compiler and user-defined
|
||||
options.
|
||||
Recommended way to create new configuration is to run "configure"
|
||||
in "config/new_compiler" directory and create <b>stl_yourcompiler.h</b> in "config"
|
||||
directory based on switches defined by "configure" in stlconf.h.
|
||||
<b>Do not</b> expect STLport to be configured just by running "configure".
|
||||
</p>
|
||||
|
||||
<p>Here is an example how to specify the parameters to "configure" (for Bourne-like
|
||||
shells): <b><br>
|
||||
host> cd STLport/config<br>
|
||||
host> CXX=CC CXXFLAGS="-xwe -noex" ./configure --enable-malloc</b></p>
|
||||
<p>This will set up workarounds necessary for "<b>CC</b>"
|
||||
compiler as well as specify malloc-based allocator as the default one. <br>
|
||||
|
||||
|
||||
Run "<b>configure --help</b>" to see list of options
|
||||
available. For most reliable results, you should specify <b>CXXFLAGS</b>
|
||||
to contain the option turning warnings into errors.
|
||||
"configure" tries to scan warnings, but that not always works.
|
||||
After testing your compiler features and setting options specified,
|
||||
"configure" creates <b>stlconf.h</b> file using <b>config/stlconf.h</b>
|
||||
as input. Macro <b>__AUTO_CONFIGURED</b> indicates that the package has
|
||||
been configured. If it is not set (before you run configure), <b>stlconf.h</b>
|
||||
includes <b>stlcomp.h</b> header to set up conservative configuration
|
||||
and recognize the compiler version. <b>config/stlconf.h</b> can be
|
||||
safely copied to stlconf.h to restore unconfigured status-quo.</p>
|
||||
|
||||
<h3>Configuring STLport on other platforms</h3>
|
||||
|
||||
The above may also work on other systems with UNIX-like toolsets on
|
||||
them. <br>
|
||||
|
||||
For example, the <a href="http://www.cygnus.com">cygwin32</a>
|
||||
suite for Windows 95/NT runs "configure" just fine.
|
||||
<br>
|
||||
|
||||
You can also change <stlcomp.h> for your system manually.<br>
|
||||
Please consider contributing your changes back to the STLport
|
||||
project!
|
||||
|
||||
<h3>"configure" synopsys (Bourne shells):</h3>
|
||||
|
||||
<p>> [environment] <b>./configure</b> [user-defined options]</p>
|
||||
|
||||
<h3>"configure" synopsys (C-shells):</h3>
|
||||
<p>> <b>env </b>[environment] <b>./configure</b> [user-defined
|
||||
options]</p>
|
||||
|
||||
<p><b>"configure" script runs series of tests to determine
|
||||
detailed characteristics of your compiler.</b></p>
|
||||
<p>In [environment] , you may specify the following parameters</p>
|
||||
<p><b>CXX=<compiler_name>, </b>default is <b>c++</b></p>
|
||||
<p><b>CXXFLAGS=<<i>cxx compiler flags you will most likely use</i>>
|
||||
. <br>
|
||||
</b>That may be needed to set up some features correctly. That is, if
|
||||
you plan to use exception handling, and your compiler doesn't enable
|
||||
them by default, specify the option enabling EH there. <br>
|
||||
It is also helpful to specify an option turning warnings into errors
|
||||
here to get most reliable configuration ( For example, warnings could be
|
||||
like that : <i>"Warning: namespaces are mostly broken in this
|
||||
release"</i>, and they're indeed broken. ).</p>
|
||||
|
||||
<p>In case you are not able to run configure, you might have to know
|
||||
internal STLport macros describing compiler features/bugs
|
||||
Please refer to the <a href="configure.html">Configuration Manual</a> for the values.
|
||||
</p>
|
||||
|
||||
<h3>Modifying the configuration engine</h3>
|
||||
<p>Don't edit the "configure" script directly, use <b>config/configure.in</b>
|
||||
source + <b>GNU autoconf</b> instead.</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>
|
||||
25
STLPORT/doc/bug_report.html
Normal file
25
STLPORT/doc/bug_report.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Bug Reports</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">Bug Reports and Questions</span>
|
||||
<p><font size="3"><br>
|
||||
</font>Bug reports and questions are welcome. Please supply a source
|
||||
code fragment and compiler/OS information along with bug reports.</p>
|
||||
<p>Before sending a bug report, please check <a href="FAQ.html">FAQ</a>
|
||||
and <a href="buglist.html">Known Bugs</a> to see if your bug has been
|
||||
reported already. Refer also to <a href="compiler_readmes.html">READMEs</a>
|
||||
to see if it's common problem with your compiler.</p>
|
||||
<p>Please direct your bug reports and questions to <a href="http://www.stlport.com/cgi-bin/forum/dcboard.cgi">STLport
|
||||
Forum</a> to get better feedback. Answers are being normally posted
|
||||
there, too. Please keep in mind the support is done on a pure volunteer
|
||||
basis.</p>
|
||||
<p>If you make a port for your compiler and would like to make it
|
||||
available to the public, <a href="mailto:consulting@stlport.com">contact us</a>
|
||||
and we'll be happy to include it with this package, provided that your
|
||||
modifications are freely distributable.</p>
|
||||
<p>If you wish to be notified about STLport updates automatically : please
|
||||
indicate it in download form. You may alter your mail list option
|
||||
anytime via the same form.</p>
|
||||
<p><a href="http://www.stlport.com/cgi-bin/forum/dcboard.cgi">Report your
|
||||
bug</a></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>
|
||||
18
STLPORT/doc/buglist.html
Normal file
18
STLPORT/doc/buglist.html
Normal file
@@ -0,0 +1,18 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Current buglist</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">Known bugs</span>
|
||||
<hr noshade="" color="#000080">
|
||||
<p><b>Borland C++ 5.0</b><br>
|
||||
This release is known to still have problems with BC 5.0x.
|
||||
Directory <b>STLport/BC50/</b> contains some extra files Borland C++ 5.x
|
||||
expects to see on the path. Make sure you put <b>STLport/BC50 </b>in<br>
|
||||
your search path before <b>STLport </b>main directory. The problems still persist
|
||||
with <string>, so BC50 is configured to use native one. You may face other problems with
|
||||
5.0. Please direct your bug reports and workarounds to the Forum.</p>
|
||||
|
||||
<p><b>Visual C++ 6.0 : <br>
|
||||
</b>To fix internal compiler errors on large compilations, please refer to VC knowledge base to see what extra options may be supplied.</p>
|
||||
<hr noshade="" color="#000080">
|
||||
<p><a href="bug_report.html">Report a bug</a></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>
|
||||
27
STLPORT/doc/compiler_readmes.html
Normal file
27
STLPORT/doc/compiler_readmes.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: README Files for Particular Compilers</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">README Files for Particular Compilers</span>
|
||||
<p> </p>
|
||||
<p>Some compilers have bugs that require specific workarounds in your
|
||||
source code. They compile STLport headers OK but crash on using certain
|
||||
STL constructs in your code, or require specific tuning in some cases.
|
||||
Refer to appropriate README file if running into problems:</p>
|
||||
<dir>
|
||||
<li><a href="README.gcc.html">GCC README </a></li>
|
||||
<li><a href="README.sunpro.html">SunPro C++ README</a></li>
|
||||
<li><a href="README.VC++.html">Visual C++ README</a></li>
|
||||
<li><a href="README.BC.html">Borland C++ 5.x README</a></li>
|
||||
<li><a href="README.xlC.html">AIX xlC README</a></li>
|
||||
<li><a href="README.xlC.html">IBM Visual Age C++ README</a></li>
|
||||
<li><a href="README.DEC.html">DEC CXX README</a></li>
|
||||
<li><a href="README.CW.html">Metrowerks CodeWarrior README</a></li>
|
||||
<li><a href="README.aCC.html">HP ANSI C++ Compiler (aCC) README</a></li>
|
||||
<li><a href="README.pow.html">PowerSoft's Power++ 2.0 README</a></li>
|
||||
<li><a href="README.os390.html">IBM OS/390 C/C++ 1.x - 2.x
|
||||
README </a></li>
|
||||
<li><a href="README.sgi40.html">SGI MIPSpro C++ 4.0 README</a></li>
|
||||
<li><a href="README.MPW.html">Apple MPW MrCpp and SCpp README</a></li>
|
||||
</dir>
|
||||
|
||||
</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>
|
||||
793
STLPORT/doc/configure.html
Normal file
793
STLPORT/doc/configure.html
Normal file
@@ -0,0 +1,793 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Configuration Manual</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">STLport Configuration Manual</span>
|
||||
<p>
|
||||
<font size="1"><em><strong>by Boris Fomitchev</strong></em></font>
|
||||
</p>
|
||||
<h3>Parameters</h3>
|
||||
<p>There are two major categories of STLport configuration parameters:</p>
|
||||
<ul>
|
||||
<li>User-definable preferences</li>
|
||||
<li>Parameters describing compiler bugs and misfeatures</li>
|
||||
</ul>
|
||||
<p>The former class lets you set some specific preferences. Switches
|
||||
controlling these preferences are located in <stl_use_config.h>
|
||||
header, which is self-documented. This manual provide some additional
|
||||
info on them.</p>
|
||||
<p>For the latter, STLport comes preconfigured for a wide
|
||||
variety of compilers. <br>
|
||||
See list for a complete list of compilers that STLport automatically
|
||||
recognizes.<br>
|
||||
If your compiler is not being recognized properly, this document will
|
||||
help you to fix the problem.</p>
|
||||
<p> </p>
|
||||
<h3>User-defined preferences</h3>
|
||||
<p>You may specify some user-defined preferences for STLport. There are
|
||||
two ways to set the options up :</p>
|
||||
<ol>
|
||||
<li>Setting corresponding #define in <stl_user_config.h> . This
|
||||
is the preferred method. You can also use different <stl_user_config.h>
|
||||
headers for different projects.</li>
|
||||
<li>Specifying corresponding flag on compiler command-line. Some
|
||||
options also may be suppressed. For example, you may configure the
|
||||
distribution to exploit exception handling with setting <b>_STLP_USE_EXCEPTIONS</b>
|
||||
macro to 1, then turning exception handling off with <b>-D_STLP_NO_EXCEPTIONS</b>
|
||||
command-line option for particular project</li>
|
||||
</ol>
|
||||
<p>Below is a stable set of of user-defined options with description. If
|
||||
not indicated otherwise, default for these options is that they are
|
||||
undefined.<br>
|
||||
</p>
|
||||
<table border="1" cellspacing="0" cellpadding="4">
|
||||
<caption>
|
||||
<h4>User-defined options for STLport</h4>
|
||||
</caption>
|
||||
<tr>
|
||||
<td><b>Controlling Macro</b></td>
|
||||
<td><b>Description</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_OWN_IOSTREAMS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This switch is used to select
|
||||
one from two major STLport iostream modes. Please visit <a href="select_io.html">"Getting Started"</a> section for details.
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_NEW_IOSTREAMS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Suppress using new-style
|
||||
iostreams even if they are available. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_IOSTREAMS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This switch is experimental and
|
||||
is intended to be used in embedded environments. It makes STLport assume that
|
||||
no iostreams are available at all. </font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_CUSTOM_IO
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This switch is experimental. Define this if you do not instantiate basic_xxx iostream classes with custom types (which is most likely the case). "Custom" means types other than char, wchar and char_traits<>, like basic_ostream<my_char_type, my_traits<my_char_type> >. When this option is on, most non-inline template functions definitions for iostreams are not seen by the client. Default is off, just not to break compilation for those who do use those types. When on, it saves a lot of compile time for most compilers, also object and executable size for some. That also guarantees that you still use optimized standard i/o when you compile your program without optimization and link with optimized library. Option does not affect STLport library build; you may use the same binary library with and without this option, on per-project basis.</font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_DEBUG_LIB </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">(Windows compilers only)
|
||||
Normally, optimized STLport library is being automatically linked in even when you compile your project with _DEBUG set (Debug build). If you wish to use debug build of STLport library for your debug builds, define this option (you will also have to build STLport library with debug flags, via additional "make debug_static debug_dynamic" command, as "make all" only builds "release" and "stldebug" versions of the libraries).
|
||||
</font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_STATIC_LIB, _STLP_USE_STATICX_LIB, _STLP_USE_DYNAMIC_LIB </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">(Windows compilers only)
|
||||
Normally, a version of STLport library iwhich corresponds to your RTL library setting is being automatically linked in (if you use dynamic RTL DLL, dynamic STLport DLL is being used, and vice versa).
|
||||
If you wish to force use of particular (static, dynamic, or "staticx" which is static STLport lib built with dynamic RTL) STLport lib, please make use one of those options.
|
||||
</font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_OWN_NAMESPACE
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Suppresses STLport use of
|
||||
namespace <b>_STL</b>:: even if it is recommended, forces
|
||||
STLport to use <b>std</b>::. Normally, STLport uses <b>_STL</b>::
|
||||
namespace instead of <b>std</b>::, to prevent clashes with iostreams/string stuff that comes
|
||||
with the compiler. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_OWN_NAMESPACE
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Forces STLport to use <b>_STL</b>::
|
||||
namespace instead of <b>std</b>:: STLport sets this flag
|
||||
automatically if _STLP_USE_NAMESPACES is set.</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DONT_RENAME_STD
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Precludes STLport from redefining <b>std</b>::
|
||||
to <b>_STL</b>::. Define it only if renaming scheme does not work for you for some reason.
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEBUG </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Turns the <a href="debug_mode.html">Debug
|
||||
Mode</a> on. That gets you checked iterators and ranges.
|
||||
Thread-safe. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_SYSTEM_ASSERT
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">use the system-defined
|
||||
assert instead of fprintf to stderr </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEBUG_MESSAGE </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Uncomment this to force
|
||||
all failed assertions to be directed through a user-defined global
|
||||
function: void __stl_debug_message(const char * format_str, ...).
|
||||
This allows you to take control of assertions for debugging
|
||||
purposes. Note : If you set this macro, you must supply <b>__stl_debug_message</b> function definition somewhere. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEBUG_TERMINATE </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Uncomment this to force
|
||||
all failed assertions to be executed through user-defined global function: void __stl_debug_terminate(void). This allows you to take control of assertion behaviour for debugging purposes. Default routine throws unique exception if _STLP_NO_DEBUG_EXCEPTIONS is not set, calls abort() otherwise. <br>Note : If you set this macro, you must supply __stl_debug_terminate function definition somewhere.
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_DEBUG_EXCEPTIONS </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2"> Comment this out to enable throwing unique exceptions from default __stl_debug_terminate() instead of calling abort(). </font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_EXCEPTIONS </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Disables exception
|
||||
handling code. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_NAMESPACES </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Puts STLport into global
|
||||
namespace, even if the compiler supports namespaces. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_RELOPS_NAMESPACE
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">if defined, don't put the
|
||||
relational operators in namespace <b>std::rel_ops</b>. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_REENTRANT </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Define this if your
|
||||
project is multithreaded. STLport uses MT-safe allocator support
|
||||
then. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_NOTHREADS </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">If defined, STLport don't
|
||||
use any multithreading support. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_NEW_C_HEADERS</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">If defined, STLport don't
|
||||
use native new-style C headers even if they are available. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_RAW_SGI_ALLOCATORS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Force STLport to use
|
||||
older SGI-style allocators as default ones for containers, instead
|
||||
of standard-conforming <b>allocator</b><>. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_MALLOC </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This makes <b>allocator</b><>
|
||||
to do plain <b>malloc()</b> calls instead of using SGI optimized
|
||||
node allocator engine. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_NEWALLOC </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This makes <b>allocator</b><>
|
||||
to do plain <b>new()</b> calls instead of using SGI optimized node
|
||||
allocator engine. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEBUG_ALLOC </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This makes <b>allocator</b><>
|
||||
to perform memory debugging, such as padding/checking for memory
|
||||
consistency. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEBUG_UNINITIALIZED </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
Use this option to catch uninitialized members in your classes.
|
||||
When it is set, construct() and destroy() fill the class storage
|
||||
with _STLP_SHRED_BYTE (see below).
|
||||
Note : _STLP_DEBUG and _STLP_DEBUG_ALLOC don't set this option automatically
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_SHRED_BYTE </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Provides a definition for
|
||||
the byte with which raw memory will be filled if _STLP_DEBUG_ALLOC or _STLP_DEBUG_UNINITIALIZED
|
||||
is defined. Choose a value which is likely to cause a noticeable
|
||||
problem if dereferenced or otherwise abused. A good value may
|
||||
already be defined for your platform; see <b>stldebug.h</b> </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DONT_THROW_RANGE_ERRORS </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
This macro prevents instantiation of at() member function
|
||||
for containers (vector and deque).
|
||||
We do not instantiate at() that does not throw range errors -
|
||||
if this macro is defined, at() method is not defined.
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_MSVC50_COMPATIBILITY
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This definition makes SGI
|
||||
<b>reverse_iterator</b> to be compatible with other parts of MSVC
|
||||
library. (With partial specialization, it just has no effect). Its
|
||||
use is strongly discouraged - for MSVC5.0 configuration, it is
|
||||
being set automatically. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_MFC </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
You should define this macro if compiling with MFC - STLport <stl/_config.h>
|
||||
then include <afx.h> instead of <windows.h> to get synchronisation primitives
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
Use minimum set of default arguments on template classes that have more
|
||||
than one - for example map<>, set<>.
|
||||
This has effect only if _STLP_LIMITED_DEFAULT_TEMPLATES is on.
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_PROXY_ARROW_OPERATOR</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
By default, STLport uses proxy technique to enable operator -> for
|
||||
iterators even for those compilers that check the return type of
|
||||
unused instantiations. If this causes problems for your project, turn this
|
||||
switch on to disable proxy ->() operators.
|
||||
</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_USE_ABBREVS</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Use abbreviated class
|
||||
names internally for linker benefit (don't affect interface). This
|
||||
option is obsolete, but should work in this release.</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_USE_DECLSPEC
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
(Obsolete, Windows only) This switch makes STLport symbols exported from DLL.
|
||||
To use export feature, you should define this macro for all compilation units and
|
||||
also define _STLP_DESIGNATED_DLL macro for one of your DLL's which is supposed to export
|
||||
all STLport symbols. You must use this feature if you use default node allocator and pass
|
||||
objects across DLL boundaries, and do not use STLport iostreams.
|
||||
Defined automatically if you use STLport iostreams and
|
||||
compile with /MD flag.
|
||||
</font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_DESIGNATED_DLL
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
(Obsolete, Windows only) Designed to be used together with _STLP_USE_DECLSPEC switch to
|
||||
make one of your DLL's to export STLport symbols for other modules.
|
||||
The library which is designated to export DLL symbols, must have both of
|
||||
those switches defined for compilation and it should include at least <string>
|
||||
header from at least one source file. Normally you should not be using this, it is used by STLport internally to build STLport DLL.
|
||||
</font></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
<p><b>Notes:</b></p>
|
||||
<ul>
|
||||
<li>When using tools like Purify (c), Codeguard (c) or BoundsChecker
|
||||
(c), it is advised to <tt>#define _STLP_USE_MALLOC</tt> or <tt>_STLP_USE_NEWALLOC</tt>,
|
||||
otherwise pointer checking will generally not be available on most
|
||||
STL internal structures, thus defeating the purpose of those tools.</li>
|
||||
</ul>
|
||||
<p> </p>
|
||||
|
||||
<a name="compiler_switches"></a>
|
||||
<h3>Compiler-specific switches</h3>
|
||||
|
||||
<p>Compiler-specific switches are STLport macros describing compiler (mis)features/bugs.Below is the
|
||||
table describing them. They are designed in such a way that the compiler
|
||||
that implements complete set of ANSI C++ features and has no bugs ;) would
|
||||
have empty configuration file.</p>
|
||||
|
||||
STLport also provides a script that is designed to help you setting those numerous switches.
|
||||
Please read <a href="auto_configure.html">Running configure</a> chapter to learn more about this tool.
|
||||
<br><i>Note : <b>do not</b> expect STLport to be configured just by running "configure".
|
||||
It is provided only as a tool to help in the initial configuration phase.</i>
|
||||
|
||||
<table border="1" cellspacing="0" cellpadding="4">
|
||||
<caption>
|
||||
<h4>STLport macros describing compiler features</h4>
|
||||
</caption>
|
||||
<tr>
|
||||
<td><b>Controlling macro name</b></td>
|
||||
<td><b>Description</b></td>
|
||||
<td><b>Default</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NATIVE_INCLUDE_PATH
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">The path where native
|
||||
compiler headers are located. STLport uses this information to
|
||||
import <b>std</b>:: names into <b>_STL</b>:: namespace. Default
|
||||
is <b>../include</b>. Hint : never install STLport headers in the
|
||||
directory that ends with <b>include</b>. </font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_UINT32_T</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Unsigned 32-bit integral
|
||||
type</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">unsigned long</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_LONG_LONG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
supports non-standard <b>long long</b> type</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_WCHAR_T</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support <b>wchar_t</b> type</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_WCHAR_T_IS_USHORT
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">wchar_t is not a unique
|
||||
type, and is actually a typedef to unsigned short </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_LONG_DOUBLE</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support <b>long double</b> type</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_TYPENAME</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
does not support <b>typename </b>keyword</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_EXPLICIT</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
does not support <b>explicit </b>keyword</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_MUTABLE</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
does not support <b>mutable </b>keyword</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_NEW_STYLE_CASTS</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support new-style <b>const_cast<></b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_BOOL</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
does not support <b>bool</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DONT_USE_BOOL_TYPEDEF</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Bool not supported, but
|
||||
keyword is reserved for future use</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_YVALS_H</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2"><b>true/false</b> defined
|
||||
in <b><yvals.h></b> header ( Visual C++ 4.2)</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEFAULT_TEMPLATE_PARAM</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support default template parameters</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEFAULT_TYPE_PARAM</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
support only complete types as default parameters</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_LIMITED_DEFAULT_TEMPLATES</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
cannot handle default non-type template parameters</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NON_TYPE_TMPL_PARAM_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler has
|
||||
trouble with functions getting non-type-parameterized classes as
|
||||
parameters</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_STATIC_TEMPLATE_DATA</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler does
|
||||
not support static class data template definition</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_STATIC_CONST_INIT_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler does
|
||||
not support initialization of const static class data template members within class.</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_WEAK_ATTRIBUTE</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
provides <b>__attribute((weak))__</b> construct as extension. Only needed if
|
||||
the compiler can't handle static template data members (gcc 2.7.2)</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_HAS_NO_NAMESPACES</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
does not support namespaces</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_BROKEN_USING_DIRECTIVE
|
||||
</b></font></td>
|
||||
<td><font size="2" face="Arial, Helvetica">"<b>using</b>"
|
||||
keyword does not work with template types </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_HAS_NO_EXCEPTIONS</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
does not support exception-handling</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_EXCEPTION_SPEC</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
does not support exception specifications</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_THROW_RETURN_BUG
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Compiler requires <b>return</b>
|
||||
statement after <b>throw</b>() </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NO_BAD_ALLOC </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Header <<b>new</b>>
|
||||
that comes with the compiler does not define <b>bad_alloc</b>
|
||||
exception </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_MEMBER_TEMPLATES</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support member templates</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_MEMBER_TEMPLATE_CLASSES</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support member template classes</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_FRIEND_TEMPLATES</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support friend templates</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NO_QUALIFIED_FRIENDS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Compiler does not accept
|
||||
friend declaration qualified with namespace name. </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_CLASS_PARTIAL_SPECIALIZATION</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support partial template class specialization</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS
|
||||
</b></font></td>
|
||||
<td><font size="2" face="Arial, Helvetica">Class being partially
|
||||
specialized require full name (template parameters) of itself for
|
||||
method declarations </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_PARTIAL_SPECIALIZATION_BUG
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Partial specialization
|
||||
has bugs that prevent you from using new-style <b>reverse_iterator</b>
|
||||
</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_MEMBER_SPECIALIZATION_BUG
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Compiler has problems
|
||||
specializing members of partially specialized class </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_METHOD_SPECIALIZATION</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
does not support specializations of single template method.</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_FUNC_PARTIAL_ORDERING</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support partial template functions ordering</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if compiler
|
||||
does not support full template specialization syntax</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Compiler does not support
|
||||
explicit template arguments for functions </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b><font size="1" face="Arial, Helvetica">_STLP_AUTOMATIC_TYPE_TRAITS</font></b></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
specializes predefined class <b>type_traits<T></b> for every
|
||||
type. This is an extension</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b><font size="1" face="Arial, Helvetica">_STLP_LOOP_INLINE_PROBLEMS</font></b></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
can't inline <b>while(), for()</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b><font size="1" face="Arial, Helvetica">_STLP_BASE_MATCH_BUG</font></b></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
fails to match a template function argument of base type</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b><font size="1" face="Arial, Helvetica">_STLP_NONTEMPL_BASE_MATCH_BUG</font></b></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
fails to match a template function argument of base
|
||||
(non-template) type</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b><font size="1" face="Arial, Helvetica">_STLP_NESTED_TYPE_PARAM_BUG</font></b></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
rejects outline method definition explicitly taking nested types/typedefs</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_TYPENAME_ON_RETURN_TYPE
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Compiler requires
|
||||
typename keyword on outline method definition explicitly taking
|
||||
nested types/typedefs </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_BASE_TYPEDEF_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if your compiler
|
||||
have serious problems with typedefs</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_BASE_TYPEDEF_OUTSIDE_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the baseclass
|
||||
typedefs not visible from outside</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_MEMBER_POINTER_PARAM_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
can't handle pointer-to-member type as function parameter</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_UNINITIALIZABLE_PRIVATE</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
has problems with static private data members initialization</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_STATIC_ARRAY_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
has trouble instantiating static array members with dimension
|
||||
defined as enum.</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_DEFAULT_CONSTRUCTOR_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if default
|
||||
constructor for builtin integer type fails to initialize it to 0 </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_CONST_CONSTRUCTOR_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if constructor
|
||||
required to explicitly call member's default constructors for
|
||||
const objects</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_TRIVIAL_CONSTRUCTOR_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
has trouble calling <b>POD</b>-types constructors</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_TRIVIAL_DESTRUCTOR_BUG</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if the compiler
|
||||
has trouble calling <b>POD</b>-types destructors</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_MULTI_CONST_TEMPLATE_ARG_BUG
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">problems specializing
|
||||
maps/sets with key type being const </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>__SGI_STL_NO_ARROW_OPERATOR
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Compiler has deficiencie compiling
|
||||
-> operators for iterators. STLport provides proxy workaround for those. </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NO_AT_MEMBER_FUNCTION
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Disables <b>at</b>()
|
||||
member functions for containers </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_HAS_NO_NEW_IOSTREAMS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Native C++ library does not provide
|
||||
new-style templatized <b>iostreams</b> </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NO_EXCEPTION_HEADER
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">compiler lacks <<b>exception</b>>
|
||||
header </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_HAS_NO_NEW_C_HEADERS
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Native library does not provide new-style headers
|
||||
like <<b>cstddef</b>>, only old-style like: <stddef.h> </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NO_NEW_NEW_HEADER
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Native library does not provide new-style
|
||||
like <<b>new</b>> header. </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_VENDOR_GLOBAL_STD </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">compiler-supplied standard library
|
||||
resides in global namespace, not <b>std</b>:: </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">std::</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_VENDOR_GLOBAL_CSTD </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">compiler-supplied <<b>cstdio</b>>
|
||||
and the like put stuff in global namespace, not <b>std</b>:: </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font size="1" face="Arial, Helvetica"><b>_STLP_RAND48</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Defined if C library has <b>lrand48()</b>
|
||||
function</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Off</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NATIVE_INCLUDE_PATH
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Path to get native
|
||||
compiler headers included. May be relative or absolute. </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2"><b>../include</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NATIVE_C_INCLUDE_PATH
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Path to get native
|
||||
compiler's old-style C headers (like <b>stdio.h</b>) included. May be relative or absolute. </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2"><b>../include</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NATIVE_CPP_C_INCLUDE_PATH
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Path to get native
|
||||
compiler new-style C headers (like <b>cstdio</b>) included. May be relative or absolute. </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2"><b>../include</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_MAKE_HEADER </b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This macro constructs
|
||||
header path from directory and name. You may change it if your
|
||||
compiler does not understand "/". </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2"><<b>path/header</b>></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NATIVE_HEADER(header)
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">This macro constructs
|
||||
native include header path from include path and name. You may
|
||||
have do define it if experiencing problems with preprocessor </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">See <b>stl_config.h</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NATIVE_C_HEADER(header)
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Same for old-style C headers </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">See <b>stl_config.h</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_NATIVE_CPP_C_HEADER(header)
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">Same for new-style C headers </font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">See <b>stl_config.h</b></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><font face="Arial, Helvetica" size="1"><b>_STLP_LINK_TIME_INSTANTIATION
|
||||
</b></font></td>
|
||||
<td><font face="Arial, Helvetica" size="2">
|
||||
This switch should be set on if the compiler supports separate template compilation model,
|
||||
with non-inlined functions and methods being defined in implementation .c file.
|
||||
</font></td>
|
||||
<td><font face="Arial, Helvetica" size="2"><b>Off</b></font></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
<h4> </h4>
|
||||
</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>
|
||||
56
STLPORT/doc/copyrights.html
Normal file
56
STLPORT/doc/copyrights.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Copyrights and Permissions</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">Copyrights and Permissions</span>
|
||||
<p> </p>
|
||||
<p>STLport library is</p>
|
||||
<p><b><i>Copyright (c) 1999, 2000 Boris Fomitchev </i></b></p>
|
||||
<p>See<a href="license.html"> license agreement</a> for details.</p>
|
||||
<p>STLport is build upon the <a href="http://www.sgi.com/tech/stl/">SGI
|
||||
STL distribution</a>, which is:</p>
|
||||
<p><b><i>Copyright (c) 1994 Hewlett-Packard Company</i></b></p>
|
||||
<p><b><i>Copyright (c) 1996,97,98,99 Silicon Graphics Computer Systems, Inc.</i></b></p>
|
||||
<p>The STLport adaptation is historically</p>
|
||||
<p><b><i>Copyright (c) 1997 Moscow Center for SPARC Technology.</i></b></p>
|
||||
<p>STLport is provided pursuant to the following permission notices:</p>
|
||||
<blockquote>
|
||||
<p><i><font size="2">Permission to use, copy, modify, distribute and
|
||||
sell this software and its documentation for any purpose is hereby
|
||||
granted without fee, provided that the above copyright notice appear
|
||||
in all copies and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation. Hewlett-Packard Company
|
||||
makes no representations about the suitability of this software for
|
||||
any purpose. It is provided "as is" without express or
|
||||
implied warranty.</font></i></p>
|
||||
<p><i><font size="2">Permission to use, copy, modify, distribute and
|
||||
sell this software and its documentation for any purpose is hereby
|
||||
granted without fee, provided that the above copyright notice appear
|
||||
in all copies and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation. Silicon Graphics makes no
|
||||
representations about the suitability of this software for any
|
||||
purpose. It is provided "as is" without express or implied
|
||||
warranty.</font></i></p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<i><font size="2">Permission to use, copy, modify, distribute and sell
|
||||
this software and its documentation for any purpose is hereby granted
|
||||
without fee, provided that the above copyright notice appear in all
|
||||
copies and that both that copyright notice and this permission notice
|
||||
appear in supporting documentation. Moscow Center for SPARC Technology
|
||||
makes no representations about the suitability of this software for
|
||||
any purpose. It is provided "as is" without express or
|
||||
implied warranty.</font></i>
|
||||
</blockquote>
|
||||
<p>The Exception Handling Test Suite is</p>
|
||||
<blockquote>
|
||||
<i>Copyright (c) 1997 Mark of the Unicorn, Inc. </i>
|
||||
<p><i><font size="2">Permission to use, copy, modify, distribute and
|
||||
sell this software and its documentation for any purpose is hereby
|
||||
granted without fee, provided that the above copyright notice appear
|
||||
in all copies and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation. Mark of the Unicorn makes
|
||||
no representations about the suitability of this software for any
|
||||
purpose. It is provided "as is" without express or implied
|
||||
warranty. </font></i></p>
|
||||
</blockquote>
|
||||
|
||||
</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>
|
||||
38
STLPORT/doc/cvs.html
Normal file
38
STLPORT/doc/cvs.html
Normal file
@@ -0,0 +1,38 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Early Access</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">Early access</span>
|
||||
|
||||
<table valign="top" border="0" cellpadding="8" cellspacing="0" width="776">
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
|
||||
<h3>Setting up CVS</h3>
|
||||
Please download 'scvs' script from "http://www.stlport.com/beta/cvsaccess" directory.
|
||||
To use it, you need three programs : perl, cvs and ssh installed on your system.
|
||||
The script is already modified to work with stlpor.com under cygwin.
|
||||
You might have to edit location for your perl installation and cvs program.
|
||||
|
||||
Use this script like that :
|
||||
<p><b>
|
||||
scvs -d pserver:cvs@www.stlport.com/stlport <cvs command>
|
||||
</b>
|
||||
</p>
|
||||
|
||||
<h3>CVS Accounts</h3>
|
||||
Note : example above use "cvs" account -- this allows anonymous readonly access.
|
||||
If you have been given individual account with write permissions, use your account name instead.
|
||||
If you do not have individual account but wish to have one, please submit the patches that you made
|
||||
(using read-only access and cvs diff) along with your request to <a href="mailto:boris@stlport.com">boris@stlport.com</a>.
|
||||
|
||||
More detailed instructions on using scvs script can be found at :
|
||||
|
||||
<a href="http://www.prima.eu.org/tobez/cvs-howto.html">http://www.prima.eu.org/tobez/cvs-howto.html</a>
|
||||
|
||||
<h3>Tags and Branches</h3>
|
||||
STLport CVS repository provides static tags and branches. Branches are provided for bugfixes maintenance.
|
||||
Please use static tags to retrieve particular snapshots.
|
||||
Tags have the form : STLPORT<VERSION_MAJOR><VERSION_MINOR><YYMMDD>, where YYMMDD is the time stamp when the tag was created.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</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>
|
||||
125
STLPORT/doc/debug_mode.html
Normal file
125
STLPORT/doc/debug_mode.html
Normal file
@@ -0,0 +1,125 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Debug Mode</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">STLport : Debug Mode</span>
|
||||
|
||||
<p><i><font size="2">by Boris Fomitchev</font></i></p>
|
||||
<h3>Abstract</h3>
|
||||
<p>Debug mode lets you find very obscure bugs in application code which uses STL iterators and algorithms. <br>
|
||||
It performs runtime checking of iterator <i>validity and ownership</i> and <i>algorithm
|
||||
preconditions</i>. <br>
|
||||
When debug check reveals the bug, it terminates the program
|
||||
with detailed diagnostics.</p>
|
||||
<p>STLport in debug mode is as much <i>exception-safe</i> and<i>
|
||||
thread-safe</i> as in release mode.</p>
|
||||
<h3>Debugging facilities provided</h3>
|
||||
<ul>
|
||||
<li><b>"Safe iterators" for all STL containers</b>. <br>
|
||||
They report detailed diagnostics when being used in invalid ways.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><b>Checking of preconditions for algorithms and container methods</b>.
|
||||
STLport checks the following reasonable set of preconditions:</li>
|
||||
<ul>
|
||||
<li>Range preconditions for random-access iterators</li>
|
||||
<li>Iterator's ownership, validity and deferenceability</li>
|
||||
<li>Container-specific preconditions for methods</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<h3>Implementation</h3>
|
||||
<p>Checked iterators keep track of their container while the container
|
||||
keeps track of them. The idea was introduced in <b><a href="http://www.horstmann.com/safestl.html">Cay
|
||||
Horstmann's "Safe STL"</a></b>.</p>
|
||||
<ul>
|
||||
<li>If the container goes out of scope, its iterators are being
|
||||
invalidated;</li>
|
||||
<li>If certain iterators are being invalidated because of mutating
|
||||
operation, all instances of this iterator are invalidated.</li>
|
||||
</ul>
|
||||
<h3>Usage</h3>
|
||||
<p>To turn on the debug mode, you should somehow <b><tt>#define _STLP_DEBUG</tt></b>
|
||||
macro before including any STL header. You can either supply the
|
||||
definition via compiler command-line or within CXXFLAGS in your makefile:</p>
|
||||
<p><b><tt>$> CC -g -D_STLP_DEBUG foo.cpp</tt></b></p>
|
||||
<p>Naturally, you may also wrap it into your project configuration
|
||||
header :</p>
|
||||
<p><b><tt># ifdef _NDEBUG<br>
|
||||
# undef _STLP_DEBUG<br>
|
||||
# else<br>
|
||||
# define _STLP_DEBUG 1<br>
|
||||
# endif</tt></b></p>
|
||||
<p><b>Important</b> : you must recompile your project after changing <b><tt>_STLP_DEBUG</tt></b>
|
||||
definition.</p>
|
||||
<h3>Examples</h3>
|
||||
<p>Here are some error examples with corresponding runtime output:</p>
|
||||
<p><tt>char string[23] = "A string to be copied.";<br>
|
||||
char result[23]; <br>
|
||||
copy(string+<u>20</u>, string+<u>10</u>, result);</tt> <br>
|
||||
<b>_debug.h:168 STL error : Range [first,last) is invalid <br>
|
||||
algobase.h:369 STL assertion failure: __check_range(first, last)</b></p>
|
||||
<p><tt>vector<char>::iterator i; <br>
|
||||
char ii = *i; <br>
|
||||
</tt>s<b>tldebug.h:152 STL error : Uninitialized or invalidated (by
|
||||
mutating operation) iterator used<br>
|
||||
vector.h:158 STL assertion failure: __check_dereferenceable(*this)</b></p>
|
||||
<p><tt>vector<char>::iterator i=v2.begin(); <br>
|
||||
v2.insert(v2.begin(),'!'); <br>
|
||||
char ii = *i; <br>
|
||||
</tt><b>_debug.h:152 STL error : Uninitialized or invalidated (by
|
||||
mutating operation) iterator used<br>
|
||||
vector.h:158 STL assertion failure: __check_dereferenceable(*this)</b></p>
|
||||
<p><tt>vector<int> v; v.pop_back();<br>
|
||||
</tt><b>vector.h:482 STL error : Trying to extract an object out from
|
||||
empty container <br>
|
||||
vector.h:482 STL assertion failure: !empty()</b></p>
|
||||
<p><tt>vector <int> v1(10);<br>
|
||||
for(int i = 0; i < v1.size(); i++) <br>
|
||||
v1[i] = i; vector <int> v2(10); <br>
|
||||
copy(v1.begin(), <u><blink>v2</blink></u>.end(), v2.begin());<br>
|
||||
</tt><b>_debug.h:61 STL error : Iterators used in expression are from
|
||||
different owners<br>
|
||||
vector.h:182 STL assertion failure: __check_same_owner(*this,y)</b></p>
|
||||
<p><tt>list<int> l1(array1, array1 + 3); <br>
|
||||
l1.erase(l1.<u>end()</u>);</tt><b> <br>
|
||||
list.h:398 STL error : Past-the-end iterator could not be erased <br>
|
||||
list.h:398 STL assertion failure: position.node!=node </b></p>
|
||||
<p><tt>list<int> l1(array1, array1 + 3); <br>
|
||||
list<int> l2(array2, array2 + 2); <br>
|
||||
l1.erase(<u>l2</u>.begin());</tt><b> <br>
|
||||
_debug.h:70 STL error : Container doesn't own the iterator <br>
|
||||
list.h:397 STL assertion failure: __check_if_owner(node,position) </b></p>
|
||||
<h3>Notes</h3>
|
||||
<ul>
|
||||
<li>Application code using <tt>T*</tt> to store <tt>vector::iterator</tt>
|
||||
would not compile in debug mode. Such code should be fixed - the
|
||||
standard does not specify <tt>vector::iterator</tt>, so different implementations
|
||||
can use different types for it.</li>
|
||||
<li>Miscellanous stuff used by debug engine (<tt>_debug.h</tt>) is
|
||||
not documented on purpose. Never explicitly include or otherwise use
|
||||
it in your code - it's non-standard and is subject to change.</li>
|
||||
|
||||
<li>The ability to throw exceptions instead of calling <tt>abort()</tt>
|
||||
is provided since 3.2. Please comment out _STLP_NO_DEBUG_EXCEPTIONS switch which
|
||||
disables it as default.</li>
|
||||
|
||||
<li> If those two defaults do not match your debugging needs,
|
||||
you may force all failed assertions to be executed through user-defined global function:<br> void __stl_debug_terminate(void). This allows you to take control of assertion behavior for debugging purposes.</li>
|
||||
|
||||
<li>You can control the way the debug checking messages are being printed out by defining
|
||||
your own debug output function. To do so, you should define _STLP_DEBUG_MESSAGE switch in stl_user_config.h and
|
||||
provide your function with the following signature :<br>
|
||||
void __stl_debug_message(const char * format_str, ...). The parameters are printf()-like.
|
||||
STLport will then use it to format debug message output.</li>
|
||||
|
||||
<li>Some preconditions that cannot be checked without partial class
|
||||
template specialization still left alone. (<i>example : for
|
||||
copy(InputIterator first, InputIterator last, OutputIterator result)
|
||||
algorithm, result should not be in range [first,last).</i> )</li>
|
||||
|
||||
<li>Unfortunately, the file/line pairs reported by debug engine always
|
||||
point to STL code, not to application code. I see no way to fix that
|
||||
( although the diagnostic certainly may be refined ). There's
|
||||
no substitute for good debugger to walk up the stack and locate the
|
||||
error.</li>
|
||||
</ul>
|
||||
|
||||
</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>
|
||||
12
STLPORT/doc/doc.css
Normal file
12
STLPORT/doc/doc.css
Normal file
@@ -0,0 +1,12 @@
|
||||
BODY { margin: 0 0; background: #FFFFFF; font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; }
|
||||
|
||||
A:link {font-size: 14px; text-decoration:none; color: #0c70b6;}
|
||||
|
||||
A:visited {font-size: 14px; text-decoration:none; color: #0c70b6;}
|
||||
|
||||
.copyright { font-size: 10px; font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; line-height: 12px; color: #999999; }
|
||||
|
||||
.bottomNav { font-size: 11px; font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; text-decoration: none; font-weight: bold; color: #325A30; }
|
||||
|
||||
.heading { font-size: 18px; font-family: "Tahoma", "Helvetica", "Arial", "sans-serif"; line-height: 14px; color: #e35a23; }
|
||||
|
||||
85
STLPORT/doc/eh_testsuite.html
Normal file
85
STLPORT/doc/eh_testsuite.html
Normal file
@@ -0,0 +1,85 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Exception Handling Testsuite</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">Exception Handling Test Suite for STLport</span>
|
||||
<p>
|
||||
<font size="1"><em><strong>by Dave Abrahams, Boris Fomitchev</strong></em></font>
|
||||
</p>
|
||||
<h2>Synopsis</h2>
|
||||
<p><b><tt>eh_test [-n <iterations>] [-s <size>] [-l] [-e]
|
||||
[-q]/[-v] [-t]</tt></b></p>
|
||||
<h4>Options:</h4>
|
||||
<ul>
|
||||
<li><tt>[<b>-n <iterations></b>] </tt>: number of test
|
||||
iterations, default==100;</li>
|
||||
<li><tt>[<b>-s <size></b>]</tt> : base value for random
|
||||
container sizes, default==1000;</li>
|
||||
<li><tt>[<b>-e</b>]</tt> : don't throw exceptions, test for leak in
|
||||
normal conditions;</li>
|
||||
<li><tt>[<b>-q</b>]</tt> : quiet mode;</li>
|
||||
<li><tt>[<b>-v</b>]</tt> : verbose mode (default);</li>
|
||||
<li><tt>[<b>-t</b>]</tt> : track each allocation;</li>
|
||||
<li><tt>[<b>test_name</b> [<b>test_name</b>...]]</tt> : run <b>test_name</b>
|
||||
tests (<b>default</b>==all). <br>
|
||||
Names are : <b>algo, vector, bit_vector, list, slist, deque, set,
|
||||
map, hash_set, hash_map, rope, string, bitset</b>.</li>
|
||||
</ul>
|
||||
<h2>The Story</h2>
|
||||
<p>The testsuite was written by Dave Abrahams for testing of proposed EH
|
||||
for SGI STL . Shortly, EH was merged into STLport v1.0. That wasn't
|
||||
long until EH was introduced in SGI STL distribution,
|
||||
too (a bit different approach was used). This test helped to locate and
|
||||
fix some EH bugs in 2.0-2.02 releases of SGI STL. As a side effect,
|
||||
it reveals problems in some compiler's EH implementation (typically
|
||||
they show up when you are trying turning on some optimizations).</p>
|
||||
<h2>Portability</h2>
|
||||
<p>EH testsuite can be compiled and run with the following
|
||||
compilers :</p>
|
||||
<ul>
|
||||
<li>SunPro CC 4.1-4.2 (passed OK)</li>
|
||||
<li>Metrowerks CodeWarrior Pro 1 (passed OK)</li>
|
||||
<li>Visual C++ 4.1 (hashed container tests won't compile, compiler bug
|
||||
produce false alarms for list test, other passed.)</li>
|
||||
<li>Visual C++ 5.0 (passed OK).</li>
|
||||
<li>Borland C++ 5.0 (passed OK).</li>
|
||||
<li>gcc-2.7.2 (without EH, actually ;))</li>
|
||||
<li>egcs-970922 (fails to run, dumps core in __throw implemetation).</li>
|
||||
</ul>
|
||||
<p>Makefiles for <b>gcc</b>, <b>SUNPro</b>, <b>Visual C++</b> compilers
|
||||
are provided with the suite. Look for <i>.mak</i> files in the
|
||||
distribution. It should be not difficult to adjust one of them to your
|
||||
compiler.</p>
|
||||
<h2>How To</h2>
|
||||
<p>EH testsuite comes in directory <b>test/eh</b> with your STLport
|
||||
distribution. Edit appropriate makefile to fit your compiler and include
|
||||
directories . After you've done, try "<i>make check</i>". That
|
||||
should build test executable and run it with default options (see
|
||||
Synopsis). If writing your own makefile or working from within some IDE,
|
||||
you should specify the following switches to get proper testing :</p>
|
||||
<p><tt>_STLP_USE_NEWALLOC</tt> - use new-based allocator (that will
|
||||
promptly throw on common test scheme). Otherwise, only
|
||||
assignment/comparison will throw,</p>
|
||||
<p><tt>_STLP_USE_DEBUG_ALLOC</tt> - to catch other potential memory
|
||||
problems.</p>
|
||||
<p><tt>EH_NEW_HEADERS - </tt>if you wish to use new-style C++ headers.
|
||||
This option may be useful to test some other STL implementation.</p>
|
||||
<p>For Borland C++ 5.x , you have to <tt>#define _STLP_NO_NAMESPACES</tt>
|
||||
to compile.</p>
|
||||
<p>For 16-bit platforms, you have to #define NO_FAST_ALLOCATOR to
|
||||
compile.</p>
|
||||
<p>The testsuite may be used to test not only STLport adaptation against
|
||||
particular compiler. It does not contain any adaptation-specific code,
|
||||
so it may be used with regular SGI release (note <tt>_STLP_USE_NEWALLOC </tt>has
|
||||
no effect<tt> </tt>then) or with other STL implementation (hash
|
||||
containers and rope may not work).</p>
|
||||
<h3>Copyright</h3>
|
||||
<p>This software is<br>
|
||||
<i>Copyright (c) 1997 Mark of the Unicorn, Inc. </i></p>
|
||||
<p><i><font size="1">Permission to use, copy, modify, distribute and
|
||||
sell this software and its documentation for any purpose is hereby
|
||||
granted without fee, provided that the above copyright notice appear in
|
||||
all copies and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation. Mark of the Unicorn makes no
|
||||
representations about the suitability of this software for any purpose.
|
||||
It is provided "as is" without express or implied warranty. </font></i>
|
||||
</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>
|
||||
471
STLPORT/doc/exception_safety.html
Normal file
471
STLPORT/doc/exception_safety.html
Normal file
@@ -0,0 +1,471 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Exception Handling</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">Exception Safety in STLport</span>
|
||||
<p>
|
||||
<font size="2"><em><strong>by Dave Abrahams</strong></em></font>
|
||||
</p>
|
||||
<h2><a name="guarantees"></a>Basic Library Guarantees</h2>
|
||||
<p><b>STLport makes the guarantee that</b> <b>no resources are leaked in
|
||||
the face of exceptions</b>.</p>
|
||||
<p><b>This means:</b></p>
|
||||
<ul>
|
||||
<li>By the time a container's destructor completes:</li>
|
||||
<ul>
|
||||
<li>It has returned all memory it has allocated to the appropriate
|
||||
deallocation function.</li>
|
||||
<li>The destructor has been called for all objects constructed by
|
||||
the container.</li>
|
||||
</ul>
|
||||
<li>Algorithms destroy all temporary objects and deallocate all
|
||||
temporary memory even if the algorithm does not complete due to an
|
||||
exception.</li>
|
||||
<li>Algorithms which construct objects (e.g. <tt>uninitialized_fill</tt>)
|
||||
either complete successfully or destroy any objects they have
|
||||
constructed at the time of the exception.</li>
|
||||
<li>Algorithms which destroy objects always succeed.</li>
|
||||
</ul>
|
||||
<h4>Additionally:</h4>
|
||||
<ul>
|
||||
<li>Algorithms which operate on ranges of objects leave only
|
||||
fully-constructed objects in those ranges if they terminate due to
|
||||
an exception.</li>
|
||||
<li>Containers continue to fulfill all of their requirements, even
|
||||
after an exception occurs during a mutating function. For example, a
|
||||
map will never give an inaccurate report of its size, or fail to
|
||||
meet its performance requirements because the tree that implements
|
||||
it has become unbalanced.</li>
|
||||
<li>A stronger guarantee is available for some operations: that <i>if
|
||||
the operation terminates due to an exception, program state will
|
||||
remain unchanged</i>. For example, <tt>vector<T,A>::push_back()</tt>
|
||||
leaves the vector unchanged if an exception is thrown, provided the
|
||||
library client fulfills the <a href="#basic_requirements">basic
|
||||
requirements</a> below. For some operations, the "<a href="#Strong%20Guarantee">strong
|
||||
guarantee</a>" is available if additional requirements are
|
||||
filled.</li>
|
||||
</ul>
|
||||
<p> </p>
|
||||
<p><a name="basic_requirements"></a><b><font size="+2">Basic Client
|
||||
Requirements</font></b></p>
|
||||
<p><b>The <a href="#guarantees">library guarantees</a> above are
|
||||
conditional on some requirements that library clients must fulfill.</b></p>
|
||||
<p><b>The following operations must return normally - they are forbidden
|
||||
to terminate due to an exception:</b></p>
|
||||
<ul>
|
||||
<li>Destructors of any classes used by the library. This includes all
|
||||
classes used as library template parameters. It also includes all
|
||||
classes which fulfill "type requirements" of classes used
|
||||
as library templates- an allocator's <tt>size_type</tt>, for
|
||||
example.</li>
|
||||
<li>Valid uses of any of the required functionality of the following
|
||||
types. Note that invalid uses (e.g. comparison of two iterators from
|
||||
different containers) are not prohibited from throwing an exception.
|
||||
Presumably, invalid uses would cause worse problems than resource
|
||||
leaks:</li>
|
||||
<ul>
|
||||
<li>The ForwardIterator arguments to the following:</li>
|
||||
<ul>
|
||||
<li><tt>uninitialized_copy(InputIterator first, InputIterator
|
||||
last, ForwardIterator result)</tt></li>
|
||||
<li><tt>uninitialized_fill(ForwardIterator first, ForwardIterator
|
||||
last, const T& x)</tt></li>
|
||||
<li><tt>uninitialized_fill_n(ForwardIterator first, Size n, const
|
||||
T& x)</tt></li>
|
||||
<li><tt>destroy(ForwardIterator first, ForwardIterator last)</tt></li>
|
||||
</ul>
|
||||
<li>An allocator's <tt>deallocate()</tt> function</li>
|
||||
<li>Any of the required allocator types:</li>
|
||||
<ul>
|
||||
<li><tt>pointer</tt></li>
|
||||
<li><tt>const_pointer</tt></li>
|
||||
<li><tt>reference</tt></li>
|
||||
<li><tt>const_reference</tt></li>
|
||||
<li><tt>size_type</tt></li>
|
||||
<li><tt>difference_type</tt></li>
|
||||
</ul>
|
||||
</ul>
|
||||
</ul>
|
||||
<p> </p>
|
||||
<p>Note: Algorithms like <tt>copy()</tt> expect that they are copying
|
||||
into real objects. The use of <tt>raw_storage_iterator</tt> with most
|
||||
algorithms is inherently exception-unsafe:</p>
|
||||
<ul>
|
||||
<p><tt>// objects of the same type as *iterator1 may be leaked if a
|
||||
failure occurs.<br>
|
||||
copy( iterator1, iterator2, raw_storage_iterator( ptr ) ); </tt></p>
|
||||
</ul>
|
||||
<p>Furthermore, there is no way to properly recover from this using an
|
||||
enclosing <tt>try</tt>/<tt>catch </tt>block, because <tt>raw_storage_iterator</tt>
|
||||
has no function in its public interface to tell you how far it has been
|
||||
advanced.</p>
|
||||
<p> </p>
|
||||
<h2><a name="Strong%20Guarantee"></a>The "Strong Guarantee"</h2>
|
||||
<p>In many programs, some objects will be destroyed automatically during
|
||||
exception-unwinding. For these, the basic guarantee that resources won't
|
||||
be leaked is good enough. If a program hopes to survive an exception and
|
||||
continue running, though, it probably also uses long-lived containers
|
||||
which are expected to survive past exception-recovery in a known state.
|
||||
For example, a program could maintain a list of objects representing
|
||||
tasks it is working on. If adding a task to that list fails, the program
|
||||
may still need to rely on the list. If the list must survive an
|
||||
exception intact, we need the strong guarantee:</p>
|
||||
<ul>
|
||||
<p><i>If an exception is thrown, the operation has no effects.</i></p>
|
||||
</ul>
|
||||
<p>You can get the strong guarantee by "brute force" for any
|
||||
container operation as follows, provided the container's <tt>swap()</tt>
|
||||
member function can't fail (this is true for most real-world
|
||||
containers):</p>
|
||||
<p><tt>container_type container_copy( original_container ); <br>
|
||||
container_copy.mutating_operation(...); <br>
|
||||
original_container.swap( container_copy );</tt></p>
|
||||
<p>Fortunately, many mutating operations give the strong guarantee with
|
||||
no additional requirements on the client. To get the strong guarantee
|
||||
for others, you can either use the above technique or conform to some <a href="#additional_requirements">additional
|
||||
requirements</a>.</p>
|
||||
<p> </p>
|
||||
<h3>Operations that give the "strong guarantee" with no
|
||||
additional requirements</h3>
|
||||
<p><a name="1"></a><i>( Operations labelled with * are guaranteed to
|
||||
return normally if all <a href="#basic_requirements">basic requirements</a>
|
||||
have been met) </i></p>
|
||||
<ul>
|
||||
<li><tt>uninitialized_fill()</tt></li>
|
||||
<li><tt>uninitialized_copy()</tt></li>
|
||||
<li><tt>uninitialized_fill_n()</tt></li>
|
||||
<li><tt>deque<T,A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>swap(deque<T,A>&)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>push_back(const T&)</tt></li>
|
||||
<li><tt>pop_back()</tt> <a href="#1">*</a></li>
|
||||
<li><tt>push_front(const T&)</tt></li>
|
||||
<li><tt>pop_front()</tt> <a href="#1">*</a></li>
|
||||
</ul>
|
||||
<li><tt>list<T,A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert(iterator position, const T& x = T())</tt></li>
|
||||
<li><tt>insert(iterator position)</tt></li>
|
||||
<li><tt>push_back(const T&)</tt></li>
|
||||
<li><tt>pop_back()</tt> <a href="#1">*</a></li>
|
||||
<li><tt>push_front(const T&)</tt></li>
|
||||
<li><tt>pop_front()</tt> <a href="#1">*</a></li>
|
||||
<li><tt>splice(iterator position, list<T,Allocator>& x)</tt>
|
||||
<a href="#1">*</a></li>
|
||||
<li><tt>splice(iterator position, list<T,Allocator>& x,
|
||||
iterator i)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>splice(iterator position, list<T,Allocator>& x,
|
||||
iterator first, iterator last)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>swap(list<T,A>&)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>reverse()</tt> <a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>vector<T, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>reserve(size_type n)</tt></li>
|
||||
<li><tt>swap(vector<T,A>&)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>push_back(const T&) </tt></li>
|
||||
<li><tt>pop_back()</tt> <a href="#1">*</a></li>
|
||||
</ul>
|
||||
<li><tt>bit_vector<A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>reserve(size_type n)</tt></li>
|
||||
<li><tt>swap(bit_vector&)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>push_back(const T&) </tt></li>
|
||||
<li><tt>pop_back()</tt> <a href="#1">*</a></li>
|
||||
<li><tt>insert(iterator position, bool x = bool())</tt></li>
|
||||
<li><tt>insert(iterator position)</tt></li>
|
||||
<li>insert(iterator position, const_iterator first, const_iterator
|
||||
last)</li>
|
||||
<li>insert(iterator position, const bool* first, const bool* last)</li>
|
||||
<li>insert(iterator position, size_type n, bool x)</li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>map<K, T, C, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>operator[](const key_type& k)</tt></li>
|
||||
<li><tt>insert(iterator position, const value_type& x)</tt></li>
|
||||
<li><tt>insert(const value_type& x) </tt></li>
|
||||
<li><tt>erase(const key_type& x) <a href="#1">*</a> </tt></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>set<K, C, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert(iterator position, const value_type& x)</tt></li>
|
||||
<li><tt>insert(const value_type& x)</tt></li>
|
||||
<li><tt>erase(const key_type& x)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>multimap<K, T, C, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert(iterator position, const value_type& x)</tt></li>
|
||||
<li><tt>insert(const value_type& x)</tt></li>
|
||||
<li><tt>erase(const key_type& x) </tt><a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>multiset<K, C, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert(iterator position, const value_type& x)</tt></li>
|
||||
<li><tt>insert(const value_type& x)</tt></li>
|
||||
<li><tt>erase(const key_type& x) </tt><a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>hash_map<K, T, H, E, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert_noresize(const value_type& obj)</tt></li>
|
||||
<li><tt>erase(const key_type& key)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>hash_multimap<K, T, H, E, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert_noresize(const value_type& obj)</tt></li>
|
||||
<li><tt>erase(const key_type& key)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>hash_set<T, H, E, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert_noresize(const value_type& obj)</tt></li>
|
||||
<li><tt>erase(const key_type& key)</tt> <a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>hash_multiset<T, H, E, A></tt> member functions:</li>
|
||||
<ul>
|
||||
<li><tt>insert_noresize(const value_type& obj)</tt></li>
|
||||
<li><tt>erase(const key_type& key) </tt><a href="#1">*</a></li>
|
||||
<li><tt>erase(iterator position)</tt> <a href="#1">* </a></li>
|
||||
<li><tt>erase(iterator first, iterator last)</tt> <a href="#1">* </a></li>
|
||||
</ul>
|
||||
<li><tt>clear()</tt> for all containers <a href="#1">* </a></li>
|
||||
<li>all container const member functions <a href="#1">*</a></li>
|
||||
<li>all constructors, by language definition (included for
|
||||
completeness)</li>
|
||||
</ul>
|
||||
<p> </p>
|
||||
<h3><a name="additional_requirements"></a><b><font size="+2">Strong
|
||||
guarantee requirements for other mutating container operations</font></b></h3>
|
||||
<p><a name="2"></a><i>Operations labelled with * are guaranteed to
|
||||
return normally if all additional requirements have been met) </i></p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="80%">
|
||||
<caption><b>Definition of terms</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Term</i></b></td>
|
||||
<td><b><i>Meaning, when applied to a type <tt>T<br>
|
||||
</tt></i></b><i>(<tt>x</tt> and <tt>y</tt>of type <tt>T</tt>)</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP">"guaranteed copyable"</td>
|
||||
<td valign="TOP"><tt>T z(x)</tt> and <tt>x = y</tt> may not exit via
|
||||
exception.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>"guaranteed equality-comparable"</td>
|
||||
<td valign="TOP"><tt>x == y</tt> may not exit via exception.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>"guaranteed comparable"</td>
|
||||
<td><tt>x < y</tt> may not exit via exception.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b><tt>deque<T,A></tt> member functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>insert(iterator position, const T& x)<br>
|
||||
insert(iterator position)</tt></td>
|
||||
<td valign="TOP"><tt>position == begin() || position == end()<br>
|
||||
</tt><b>OR </b><tt>T</tt> guaranteed copyable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>erase(iterator position)</tt></td>
|
||||
<td><tt>position == begin() || position == end() - 1<br>
|
||||
</tt><b>OR </b><tt>T</tt> guaranteed copyable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>erase(iterator first, iterator last)</tt></td>
|
||||
<td><tt>first == begin() || last == end()<br>
|
||||
</tt><b>OR </b><tt>T</tt> guaranteed copyable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>resize(size_type new_size, const T& x)<br>
|
||||
resize(size_type new_size)</tt></td>
|
||||
<td valign="TOP"><tt>new_size == size() + 1<br>
|
||||
</tt><b>OR </b><tt>new_size <= size()</tt> <a href="#2">*</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b><tt>list<T,A></tt> member functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>remove(const T& value)</tt></td>
|
||||
<td valign="TOP"><tt>T</tt> guaranteed equality-comparable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>unique()</tt></td>
|
||||
<td valign="TOP"><tt>T</tt> guaranteed equality-comparable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>merge(list<T, Alloc>& x)</tt></td>
|
||||
<td><tt>T</tt> guaranteed comparable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>sort()</tt></td>
|
||||
<td><tt>T</tt> guaranteed comparable</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b><tt>vector<T,A></tt> member functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>insert(iterator position, const T& x)<br>
|
||||
insert(iterator position)</tt></td>
|
||||
<td valign="TOP"><tt>position == end()<br>
|
||||
</tt><b>OR </b><tt>T</tt> guaranteed copyable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>insert (iterator position, const_iterator first,
|
||||
const_iterator last);</tt>
|
||||
<br><tt>void insert (iterator position, size_type n, const T&
|
||||
x);</tt></td>
|
||||
<td valign="TOP"><tt>T</tt> guaranteed copyable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>erase(iterator position)</tt></td>
|
||||
<td><tt>position == end() - 1<br>
|
||||
</tt><b>OR </b><tt>T</tt> guaranteed copyable</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>erase(iterator first, iterator last)</tt></td>
|
||||
<td><tt>last == end()<br>
|
||||
</tt><b>OR </b><tt>T</tt> guaranteed copyable</td>
|
||||
</tr>
|
||||
<tr valign="TOP">
|
||||
<td><tt>resize(size_type new_size, const T& x)<br>
|
||||
resize(size_type new_size)</tt></td>
|
||||
<td><tt>new_size == size() + 1<br>
|
||||
</tt><b>OR </b><tt>T</tt> guaranteed copyable<br>
|
||||
<b>OR </b><tt>new_size <= size()</tt> <a href="#2">*</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b>Basic Associative Container member functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>map<Key,T,Compare,A>::swap(map<Key,T,Compare,A>&
|
||||
amp; amp;)</tt></td>
|
||||
<td valign="TOP"><tt>Compare </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>multimap<Key,T,Compare,A>::swap(multimap<Key,T,Compare,A&a
|
||||
mp;g t;&)</tt></td>
|
||||
<td valign="TOP"><tt>Compare </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
<tr valign="TOP">
|
||||
<td><tt>set<T,Compare,A>::swap(set<T,Compare,A>&)</tt></td>
|
||||
<td><tt>Compare </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>multiset<T,Compare,A>::swap(multiset<T,Compare,A>&)
|
||||
</tt></td>
|
||||
<td><tt>Compare </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b>hash_map<K, T, HashFcn, EqualKey, A> member
|
||||
functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>swap(hash_map<K, T, HashFcn, EqualKey,
|
||||
A>&)</tt></td>
|
||||
<td valign="TOP"><tt>HashFcn and EqualKey </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>insert(const value_type& obj)</tt></td>
|
||||
<td valign="TOP"><tt>bucket_count() >= size() + 1</tt></td>
|
||||
</tr>
|
||||
<tr valign="TOP">
|
||||
<td><tt>operator[](const key_type& k)</tt></td>
|
||||
<td><tt>bucket_count() >= size() + 1</tt></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b>hash_multimap<K, T, HashFcn, EqualKey, A> member
|
||||
functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>swap(hash_multimap<K, T, HashFcn, EqualKey,
|
||||
A>&)</tt></td>
|
||||
<td valign="TOP"><tt>HashFcn and EqualKey </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>insert(const value_type& obj)</tt></td>
|
||||
<td valign="TOP"><tt>bucket_count() >= size() + 1</tt></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b>hash_set<T, HashFcn, EqualKey, A> member functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>swap(hash_set<K, T, HashFcn, EqualKey,
|
||||
A>&)</tt></td>
|
||||
<td valign="TOP"><tt>HashFcn and EqualKey </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>insert(const value_type& obj)</tt></td>
|
||||
<td valign="TOP"><tt>bucket_count() >= size() + 1</tt></td>
|
||||
</tr>
|
||||
</table>
|
||||
<p> </p>
|
||||
<table border="2" cellspacing="2" cellpadding="2" width="95%">
|
||||
<caption><b>hash_multiset<T, HashFcn, EqualKey, A> member
|
||||
functions</b></caption>
|
||||
<tr>
|
||||
<td valign="TOP"><b><i>Function</i></b></td>
|
||||
<td><b><i>Requirements</i></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="TOP"><tt>swap(hash_multiset<K, T, HashFcn, EqualKey,
|
||||
A>&)</tt></td>
|
||||
<td valign="TOP"><tt>HashFcn and EqualKey </tt>guaranteed copyable <a href="#2">*</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>insert(const value_type& obj)</tt></td>
|
||||
<td valign="TOP"><tt>bucket_count() >= size() + 1</tt></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</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>
|
||||
BIN
STLPORT/doc/images/black.gif
Normal file
BIN
STLPORT/doc/images/black.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 41 B |
BIN
STLPORT/doc/images/stl_logo_doc.gif
Normal file
BIN
STLPORT/doc/images/stl_logo_doc.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
BIN
STLPORT/doc/images/t_doc2.gif
Normal file
BIN
STLPORT/doc/images/t_doc2.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
BIN
STLPORT/doc/images/trans.gif
Normal file
BIN
STLPORT/doc/images/trans.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 43 B |
56
STLPORT/doc/index.html
Normal file
56
STLPORT/doc/index.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: STLport Documentation Index</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">STLport Documentation Index</span>
|
||||
<br><br>
|
||||
|
||||
<table border="0" cellpadding="8" cellspacing="0">
|
||||
<tr>
|
||||
<td valign="top" align="left" nowrap="">
|
||||
<b>Introduction</b><br>
|
||||
|
||||
<a href="index.html">Documentation Index</a><br>
|
||||
<a href="sgi_stl.html">SGI STL Base</a><br>
|
||||
<a href="story.html">STLport Story</a><br>
|
||||
<!--   <a href="projects.html">Portofolio</a> -->
|
||||
|
||||
<p><b>STLport Features</b><br>
|
||||
<a href="platforms.html">Portability</a><br>
|
||||
<a href="debug_mode.html">Debug Mode</a><br>
|
||||
<a href="sgi_stl.html#thread_safety">Thread Safety</a><br>
|
||||
<a href="exception_safety.html">Exception Safety</a>
|
||||
</p>
|
||||
|
||||
<p><b>Getting Started</b><br>
|
||||
|
||||
<a href="install.html">Download and Install</a><br>
|
||||
<a href="select_io.html">Select Streams Mode</a><br>
|
||||
<a href="use_stlport.html">Compiling with STLport</a>
|
||||
</p>
|
||||
</td>
|
||||
|
||||
<td valign="top" align="left" nowrap="">
|
||||
<p><b>White Papers</b><br>
|
||||
<a href="release_notes.html">Release Notes</a><br>
|
||||
<!--   <a href="FAQ.html">FAQ</a><br/> -->
|
||||
<a href="compiler_readmes.html">READMEs</a><br>
|
||||
<a href="vendor_interface.html">Interface with std::</a><br>
|
||||
<a href="wrappers.html">Wrappers</a><br>
|
||||
<a href="configure.html">Config manual</a><br>
|
||||
<a href="testsuite.html">Regression Test</a><br>
|
||||
<a href="eh_testsuite.html">Exception Test</a>
|
||||
</p>
|
||||
|
||||
<p><b>Feedback</b><br>
|
||||
<a href="bug_report.html">Bug Reports</a><br>
|
||||
<a href="http://www.stlport.com/cgi-bin/forum/forum.cgi">Forum</a><br>
|
||||
</p>
|
||||
|
||||
<p><b>Appendix</b><br>
|
||||
<a href="thanks.html">Acknowledgements</a><br>
|
||||
<!--   <a href="copyrights.html">Copyrights</a><br/> -->
|
||||
<a href="license.html">Your Free Licence</a></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</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>
|
||||
45
STLPORT/doc/install.html
Normal file
45
STLPORT/doc/install.html
Normal file
@@ -0,0 +1,45 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Getting Started: Installing STLport</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">Getting Started: Installing STLport</span>
|
||||
|
||||
<h3><b><a name="download"></a>Download</b></h3>
|
||||
To get STLport, please visit <a href="http://www.stlport.com/download.html">download page at stlport.com</a>.
|
||||
It provides STLport releases from 2.x to the latest one as well as beta snapshots.
|
||||
If you are interested in contributing to STLport development, please take a look at <a href="http://www.stlport.com/early_access.html">Early Access page</a>.
|
||||
|
||||
<h3><b><a name="unpack"></a>Unpack</b></h3>
|
||||
<p>After downloading <b>STLport-XXX.tar.gz </b>[<b>zip</b>],
|
||||
unpack it to some place where it is going to be accesible for all
|
||||
compilers you plan to use with this installation.
|
||||
<br><b>Note</b> : <b>Never</b> overwrite header files that come with the compiler,
|
||||
even if you made a backup - this won't work!
|
||||
Also, please make sure you do not rename this <b>"stlport"</b> subdirectory
|
||||
into anything else - that may render installation unusable.
|
||||
</p>
|
||||
|
||||
<h3><b><a name="adjust"></a>Setup Preferences</b></h3>
|
||||
|
||||
<p>Look through <tt><<b>stl/_site_config.h</b>></tt> and <tt><<b>stl_user_config.h</b>></tt>
|
||||
to adjust <a href="configure.html">preferences</a>.</p>
|
||||
|
||||
<p>
|
||||
<b>Do NOT</b> attempt to run "configure" script!
|
||||
It is deprecated, moved to safe standalone
|
||||
folder and should be used as a helper to create initial config for a new compiler only.
|
||||
Your compiler should be auto-recognized.
|
||||
Please edit appropriate configuration header for your compiler
|
||||
directly if you have to make small compiler-specific configuration changes.
|
||||
</p>
|
||||
|
||||
<p>Only if you recieve error message during compilation which explicitly says
|
||||
<i><b>"Your compiler version is not recognized by STLport"</b></i>, you
|
||||
will have to do major configuration of STLport before use.
|
||||
To learn how to configure STLport, please read
|
||||
<a href="configure.html">configuration manual</a>.
|
||||
</p>
|
||||
|
||||
<p>Please be sure to read about <a href="select_io.html">STLport iostreams modes</a>
|
||||
and select the one appropriate for your project before using the library.</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>
|
||||
68
STLPORT/doc/license.html
Normal file
68
STLPORT/doc/license.html
Normal file
@@ -0,0 +1,68 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: License Agreement</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">License Agreement</span>
|
||||
|
||||
<p><b>Boris Fomitchev</b> grants <b>Licensee</b> a non-exclusive,
|
||||
non-transferable, royalty-free license to use <b>STLport</b> and its
|
||||
documentation without fee.<br>
|
||||
<br>
|
||||
By downloading, using, or copying <b>STLport</b> or any portion thereof,
|
||||
<b>Licensee</b> agrees to abide by the intellectual property laws and all other
|
||||
applicable laws of the United States of America, and to all of the terms and
|
||||
conditions of this Agreement.<br>
|
||||
<br>
|
||||
<b>Licensee</b> shall maintain the following copyright and permission
|
||||
notices on <b>STLport </b>sources and its documentation unchanged :</p>
|
||||
|
||||
|
||||
<b>Copyright 1999,2000 Boris Fomitchev</b><br>
|
||||
<br>
|
||||
This material is provided "as is", with absolutely no warranty
|
||||
expressed or implied. Any use is at your own risk.<br>
|
||||
Permission to use or copy this software for any purpose is hereby granted
|
||||
without fee, provided the above notices are retained on all copies. Permission
|
||||
to modify the code and to distribute modified code is granted, provided the
|
||||
above notices are retained, and a notice that the code was modified is included
|
||||
with the above copyright notice.
|
||||
|
||||
|
||||
<p>The <b>Licensee</b> may distribute binaries compiled with <b>STLport</b>
|
||||
(whether original or modified) without any royalties or restrictions.</p>
|
||||
<p>The <b>Licensee</b> may distribute original or modified <b>STLport</b> sources,
|
||||
provided that:</p>
|
||||
<ul>
|
||||
<li>The conditions indicated in the above permission notice are met;</li>
|
||||
<li>The following copyright notices are retained when present, and conditions
|
||||
provided in accompanying permission notices are met :</li>
|
||||
</ul>
|
||||
<p><b><i>Copyright 1994 Hewlett-Packard Company</i></b></p>
|
||||
<p><b><i>Copyright 1996,97 Silicon Graphics Computer Systems, Inc.</i></b></p>
|
||||
<p><b><i>Copyright 1997 Moscow Center for SPARC Technology.</i></b></p>
|
||||
<blockquote>
|
||||
<p><i><font size="2">Permission to use, copy, modify, distribute and sell this
|
||||
software and its documentation for any purpose is hereby granted without fee,
|
||||
provided that the above copyright notice appear in all copies and that both
|
||||
that copyright notice and this permission notice appear in supporting
|
||||
documentation. Hewlett-Packard Company makes no representations about the
|
||||
suitability of this software for any purpose. It is provided "as is"
|
||||
without express or implied warranty.</font></i></p>
|
||||
<p><i><font size="2">Permission to use, copy, modify, distribute and sell this
|
||||
software and its documentation for any purpose is hereby granted without fee,
|
||||
provided that the above copyright notice appear in all copies and that both
|
||||
that copyright notice and this permission notice appear in supporting
|
||||
documentation. Silicon Graphics makes no representations about the suitability
|
||||
of this software for any purpose. It is provided "as is" without
|
||||
express or implied warranty.</font></i></p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<i><font size="2">Permission to use, copy, modify, distribute and sell this
|
||||
software and its documentation for any purpose is hereby granted without fee,
|
||||
provided that the above copyright notice appear in all copies and that both
|
||||
that copyright notice and this permission notice appear in supporting
|
||||
documentation. Moscow Center for SPARC Technology makes no
|
||||
representations about the suitability of this software for any purpose. It is
|
||||
provided "as is" without express or implied warranty.</font></i>
|
||||
</blockquote>
|
||||
|
||||
|
||||
</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>
|
||||
50
STLPORT/doc/platforms.html
Normal file
50
STLPORT/doc/platforms.html
Normal file
@@ -0,0 +1,50 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Platforms</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">Compilers supported by STLport</span>
|
||||
<p>Portability is a key feature of STLport. It allows for having single,
|
||||
thoroughly tested code base on all platforms used in the project.</p>
|
||||
<p>STLport was reported to work with the compilers listed below.</p>
|
||||
<p>Please follow links to see README files for particular compilers.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><b><a href="README.sunpro.html">
|
||||
SUN Workshop C++ Compilers 4.0.x-5.0, 5.1, 5.2 (Forte 6, 6u1, 6u2)</a>, for Solaris</b></li>
|
||||
<li><b><a href="README.gcc.html">
|
||||
GNU GCC 2.7.2-2.95, 3.0 Compilers</a>, for all GCC platforms</b></li>
|
||||
<li><a href="README.xlC.html">
|
||||
IBM xlC 3.1.4.0</a>, for AIX</li>
|
||||
<li><b><a href="README.os390.html">
|
||||
IBM OS/390 C/C++ 1.x - 2.x Compiler</a>, for OS/390
|
||||
<i>(STLport is the only available and
|
||||
<a href="http://www.software.ibm.com/ad/c390/cmvsstlp.htm">official</a>
|
||||
ANSI library for this platform)</i></b></li>
|
||||
<li><b>IBM VisualAge/ILE C++ for AS/400 Version 4 Release 4, for AS/400</b></li>
|
||||
<li><b><a href="README.xlC.html">
|
||||
IBM Visual Age C++ 3.x-5.x</a>, for OS/2 and Win32</b></li>
|
||||
<li><b><a href="README.aCC.html">
|
||||
HP ANSI C++ Compiler, for HP-UX</a></b></li>
|
||||
<li><b>SGI MIPSpro C++ 7.x, for IRIX</b></li>
|
||||
<li><b><a href="README.sgi40.html">
|
||||
SGI MIPSpro C++ 4.0</a>, for IRIX</b></li>
|
||||
<li><a href="README.DEC.html"><b>
|
||||
DEC C++ V5.5-004, V6.x for OSF 3.2/4.0, for Digital Unix</b></a>.</li>
|
||||
<li><b>Tandem NCC, for Tandem OS</b></li>
|
||||
<li><b>SCO UDK C++, for UnixWare</b></li>
|
||||
<li><b>Apogee C++ 4.0, for SUN Solaris</b></li>
|
||||
|
||||
<li><b>KAI C++ 3.1-4.x, for all KAI platforms</b></li>
|
||||
<li><b>Portland Group C++ compiler ( pgCC), for all pgCC platforms</b></li>
|
||||
|
||||
<li><b><a href="README.VC++.html">Microsoft Visual C++ 4.x - 6.x, for Win32</a></b></li>
|
||||
<li><b><a href="README.VC++.html">Microsoft Embedded Visual C++ 3.0</a></b></li>
|
||||
<li><b><a href="README.BC.html">Borland C++ 5.02-5.5</a>, for Win16/32</b></li>
|
||||
<li><b><a href="README.CW.html">Metrowerks CodeWarrior Pro 1.8-5.3</a>, for MacOS, Win32</b></li>
|
||||
<li><b>Intel (R) C++ 4.0/4.5/5.0 Reference Compiler, for Win32</b></li>
|
||||
<li><b>Watcom C++ 10.x-11.0, for DOS, Win16, Win32</b></li>
|
||||
<li><b><a href="README.pow.html">Powersoft's Power++ 2.0</a>, for Win32</b></li>
|
||||
<li><b>Symantec C++ 7x/8.x, for MacOS and Win32</b></li>
|
||||
<li><b><a href="README.MPW.html">Apple MPW MrCpp and SCpp compilers</a>, for MacOS</b></li>
|
||||
</ul>
|
||||
|
||||
</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>
|
||||
244
STLPORT/doc/projects.html
Normal file
244
STLPORT/doc/projects.html
Normal file
@@ -0,0 +1,244 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Real World Projects</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">STLport Portfolio - Real World Projects</span>
|
||||
|
||||
<p>Many people still won't consider using STL in industrial projects.
|
||||
The reason is often that the code could may turn out to be nonportable,
|
||||
while it must also be compiled with some legacy compiler X on platform Y
|
||||
. With STLport, you can use single tested STL codebase in a
|
||||
multiplatform project. Below is very incomplete list of <b>software
|
||||
projects using STLport </b><i>(thanks to all contributors who have
|
||||
submitted the information)</i>.</p>
|
||||
<p><i>Coming soon : <b>Add Your Project</b></i><br></p>
|
||||
<hr width="100%">
|
||||
<p><i>Organization: <a href="http://www.ipmce.su">Moscow Center for
|
||||
SPARC Technology</a></i></p>
|
||||
<h3>Project : CPU Architecture Simulation</h3>
|
||||
<dl>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>Scalable set of compatible VLIW ISA CPU simulators varying in
|
||||
speed/accuracy. Team of 6, extensive use of STL utilities and
|
||||
concepts.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>Solaris 2.x/SunPro CC 4.2, to be ported to Windows NT/VC++.</dd>
|
||||
</dl>
|
||||
<h3> </h3>
|
||||
<hr width="100%">
|
||||
<i>Organization: <a href="http://www.motu.com">Mark of the Unicorn,
|
||||
Inc.</a></i>
|
||||
<h3>Product : "Composer's Mosaic"</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>State-of-the-art music desktop publishing software for the
|
||||
Macintosh. Provides a WYSIWYG environment in which you can produce
|
||||
publication-quality music notation, from lead sheets to full
|
||||
orchestra scores. Includes real-time MIDI playback and recording,
|
||||
using the transcription engine that Keyboard magazine called
|
||||
"The best we've ever seen". Also supports convenient
|
||||
step-record and mouse and keyboard note entry. Supports standard
|
||||
MIDI file format. Unlimited voices, staves, and voices per staff.
|
||||
Unlimited Undo/Redo.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>Mac/CodeWarrior Pro 1</dd>
|
||||
<p><b>Availability :</b> demo version coming in a few weeks.</p>
|
||||
<p> </p>
|
||||
<hr width="100%">
|
||||
<p><i>Organization: <a href="http://www.motu.com">Mark of the Unicorn,
|
||||
Inc.</a></i></p>
|
||||
<h3>Product : "FreeStyle"</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>Trackless MIDI sequencing and notation program for songwriters and
|
||||
arrangers, combining simplicity and ease-of-use with sophisticated
|
||||
features that allow users to work in musically intuitive ways.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>Mac/CodeWarrior Pro 1 , Windows/Borland C++</dd>
|
||||
<p><b>Availability :</b> demo version coming in a few weeks.</p>
|
||||
<p> </p>
|
||||
<hr width="100%">
|
||||
<p><i>Organization: <a href="http://www.usc.edu">University of
|
||||
Southern California</a></i></p>
|
||||
<h3><a href="http://selforg.usc.edu:8376/~dyweb/frp.html">Project :
|
||||
Face Recognition</a></h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>Face recognition system called FLAVOR(formerly called Eidos),
|
||||
which uses an elastic graph matching algorithm.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>IRIX 6.2 on<b> </b>SGI Power Challenge XL/SGI MipsPro C++ v. 7.1,<b>
|
||||
</b>Wintel port coming.</dd>
|
||||
<p> </p>
|
||||
<hr width="100%">
|
||||
<p><i>Organization: <a href="http://www.ucla.edu">University of
|
||||
California at Los Angeles </a>, <a href="http://www.cs.ucla.edu">Computer
|
||||
Science Department</a></i> <br>
|
||||
<i><a href="http://vlsicad.cs.ucla.edu">VLSI CAD Laboratory - ABKGroup</a></i></p>
|
||||
<h3>Project : VLSI placement/routing</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>Extensively use most aspects of STL in algorithm research for
|
||||
placement and routing of VLSI circuits. Developers at site: 5.
|
||||
Working code using STL: exceeds 20,000 lines.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>SunPro CC4.2 (Solaris) and MSVC++ 5.0 (Windows NT/'95)</dd>
|
||||
<p><i>Contact email: <abk@cs.ucla.edu> <imarkov@cs.ucla.edu></i></p>
|
||||
<p> </p>
|
||||
<hr width="100%">
|
||||
<p><i>Organization:<a href="mailto:100023.3267@compuserve.com">Askesis
|
||||
B.V</a></i></p>
|
||||
<h3>Product : "ICAS"</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>A client/server patient database management system for the
|
||||
intensive care departement in the hospital of the University of
|
||||
Nijmegen in the Netherlands. Includes a TCP/IP Winsocket, an ODBC
|
||||
class library and a code generator for creating the database code
|
||||
based on the ODBC class library. Uses the container classes heavily.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>IBM Visual Age C++ for Windows, DB/2 for Windows NT, Windows
|
||||
NT/Windows 95 and Windows 3.11.</dd>
|
||||
<dt><b>Availability :</b></dt>
|
||||
<dd>The TCP/IP and ODBC database libary with the code generator will
|
||||
be released in under GNU Library Genereral Public Licence within a
|
||||
few weeks.</dd>
|
||||
<p> </p>
|
||||
<hr width="100%">
|
||||
<p><i>Organization: <a href="http://www.entegrity.com">Entegrity
|
||||
Solutions Inc</a></i></p>
|
||||
<h3>Product : "Security Development Platform"</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>A comprehensive framework/library for developping secure
|
||||
applications. Includes symmetric and assymetric cryptography and
|
||||
complete public key infrastructure (CA) functionality. Extensive use
|
||||
of STL throughout the project.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>Solaris 2.5 with SunCC 4.2 using STL adaption + extra basic_string.
|
||||
Windows NT4 with MS Visual C++ 5.0 using MS STL implementation.
|
||||
Compatibility between MS STL and STL adaption is good when limiting
|
||||
usage to common classes.</dd>
|
||||
<dt><b>Availability :</b></dt>
|
||||
<br>
|
||||
Beta release (NT only) due end of September.
|
||||
<hr width="100%">
|
||||
<p><i>Organization: <a href="http://darwin.cwru.edu">Case Western
|
||||
Reserve University School of Medicine,</a></i> <br>
|
||||
<i><a href="http://darwin.cwru.edu">Department of Molecular and
|
||||
Genetic Epidemiology, S.A.G.E. Group</a></i></p>
|
||||
<h3>Product : "S.A.G.E. (Statistical Analysis for Genetic
|
||||
Epidemiology)"</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>For detailed package information, see <a href="http://darwin.cwru.edu.">http://darwin.cwru.edu.</a>
|
||||
Use of the STL : in upcoming 4.0 release, ~50k+ lines of code relies
|
||||
heavily on the standard library containers and to a lesser degree on
|
||||
the standard algorithms. Code also compiles with Kuck &
|
||||
Associate's modified Moderna STL and DeltaLogic's XTL.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>Alpha Digital Unix 4.0/g++ 2.7.2.1, Digital C++ 5.5 ; Sparc
|
||||
Solaris 2.5/g++ 2.7.2.1, SunPro C++; i386 Linux 2.x/g++ 2.7.2.1</dd>
|
||||
<dt><b>Availability :</b> check <a href="http://darwin.mhmc.cwru.edu/pub/sage.html">S.A.G.E
|
||||
homepage</a>.</dt>
|
||||
<dt><i>Contact e-mail: </i><a href="mailto:jacobs@darwin.cwru.edu">jacobs@darwin.cwru.edu</a></dt>
|
||||
<dt> </dt>
|
||||
<hr width="100%">
|
||||
<p><i>Organization: </i><a href="mailto:info@formatek.com">Formatek
|
||||
Inc.</a></p>
|
||||
<h3>Product : "Softmap"</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd><b>SoftMap</b> is a GIS software bundled to a set of standard maps
|
||||
(topographic maps, city maps, thematic maps) on CD-ROM to which
|
||||
complementary georeferenced data can be added: topologically
|
||||
structured nodes, vectors, polygons, icons and texts. As SoftMap is
|
||||
a multimedia software, it is possible to link to the above graphic
|
||||
elements attributes, images, external files, data base records etc.</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>Windows/Borland C++</dd>
|
||||
<dt><b>Availability :</b> check <a href="http://www.naturinfo.com">http://www.naturinfo.com</a>.</dt>
|
||||
<dt><b>Contact e-mail:</b> <a href="mailto:info@formatek.com">info@formatek.com</a></dt>
|
||||
<dt> </dt>
|
||||
<hr width="100%">
|
||||
<p><i>Organization: <a href="http://www.int.com">Interactive Network
|
||||
Technologies, Inc (INT)</a></i></p>
|
||||
<h3>Product : "Carnac", Graphics Toolkit</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd><b>Carnac</b> is a multi-platform high-performance graphics
|
||||
toolkit written in C++ targeted at handling of huge volumes of
|
||||
graphics information: maps, geoscience, satellite images and so on.
|
||||
Carnac includes database components (spatial-organized geometry,
|
||||
visual attributes), view management, data management, distributed
|
||||
components and platform-specific drivers..</dd>
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd>Microsoft Windows NT, Sun Solaris, SGI IRIX and IBM AIX. Other
|
||||
platforms may be added.</dd>
|
||||
<dt><b>Availability:</b></dt>
|
||||
<dd>check the <a href="http://www.int.com/product/carnac/index.html">Carnac
|
||||
Web Page</a>.</dd>
|
||||
<dt><b>Comments from Carnac developers:</b></dt>
|
||||
<dd>To handle this diversity and to keep our code-base reasonably
|
||||
small and manageable we use internally a lot of new features of
|
||||
upcoming ANSI C++ standard: templates, exception handling, standard
|
||||
library based on STL. The biggest problem of our multi-platform
|
||||
project was a diversity of C++ compilers. They have a variety of
|
||||
different bugs and "features", and somewhat incompatible
|
||||
interpretations of templates. Some of them didn't support HP STL we
|
||||
started with. HP STL had a limited set of containers (notably it
|
||||
lacks hash-based containers). ObjectSpace STL was modeled after HP
|
||||
STL and had the same problems. We decided to go with SGI STL as most
|
||||
comprehensive STL implementation available. While it worked fine on
|
||||
Windows NT and SGI, we had troubles with other platforms. Adaptation
|
||||
of SGI STL (STLport) really improved this situation. We use original
|
||||
SGI STL 2.03 on Windows NT and SGI IRIX and SGI STL port 2.03 on Sun
|
||||
Solaris and IBM AIX. Both libraries work out-of-box on these
|
||||
platforms. I should add that STLport has very important features ---
|
||||
it incorporates a debug mode, which is crucial for big projects,
|
||||
thread-safety and exception safety. SGI STL and STLport are free,
|
||||
easy-to-use, up-to-date and evolving, close to ANSI C++ draft
|
||||
standard and THEY WORK ON EXISTING COMPILERS!!! That's why we chose
|
||||
SGI STL for our project.</dd>
|
||||
<br>
|
||||
Eugene Lazutkin, Senior Software Analyst <br>
|
||||
Interactive Network Technologies, Inc.
|
||||
<dt> </dt>
|
||||
<hr width="100%">
|
||||
<br>
|
||||
<i>Organization: <a href="http://www.claris.com">Claris Corporation</a></i>
|
||||
<h3>Project : ClarisWorks New Code Base</h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<dd>ClarisWorks is a productivity package that includes
|
||||
word-processing, drawing, spreadsheet, and paint capabilities all
|
||||
integrated in one package. It is currently available on MacOS
|
||||
as well as Windows 95/NT.</dd>
|
||||
<br>
|
||||
MacWeek rates us 4.5 diamonds (out of five). PCWeek says we are all
|
||||
the Office you need. <br>
|
||||
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<dd> MacOS/CodeWarrior Pro 2</dd>
|
||||
<br>
|
||||
Win32/Visual
|
||||
C++ 5.0 sp2 <br>
|
||||
WinCE/Visual
|
||||
C++ 5.0 sp2 <br>
|
||||
|
||||
<dt><b>Availability :</b></dt>
|
||||
<br>
|
||||
You can buy ClarisWorks 5.0 currently, although it is not written
|
||||
using STLport, you can get a look at what we are working on.
|
||||
<hr width="100%">
|
||||
<br>
|
||||
<br>
|
||||
<i>Organization: <a href="http://www.uni-paderborn.de/cs/">University
|
||||
of Paderborn, Germany</a></i>
|
||||
<h3>Project : <a href="http://www.uni-paderborn.de/cs/padfem/">PadFEM</a></h3>
|
||||
<dt><b>Description </b>:</dt>
|
||||
<br>
|
||||
PadFEM is a project of the University of Paderborn,
|
||||
Germany, dealing <br>
|
||||
with parallel adaptive finite element simulations. <br>
|
||||
|
||||
<dt><b>Platforms/compilers used:</b></dt>
|
||||
<br>
|
||||
g++ compiler (2.7.2 and 2.8.0) on Sun workstations (Solaris) and <br>
|
||||
massive parallel computers. <br>
|
||||
|
||||
<dt><b>Availability :</b></dt>
|
||||
<br>
|
||||
More informations are available on the PadFEM homepage at <br>
|
||||
<a href="http://www.uni-paderborn.de/cs/padfem/">http://www.uni-paderborn.de/cs/padfem/</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="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>
|
||||
176
STLPORT/doc/release_notes.html
Normal file
176
STLPORT/doc/release_notes.html
Normal file
@@ -0,0 +1,176 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Release Notes</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">STLport 4.5 Release Notes</span>
|
||||
<p>
|
||||
Please see etc/ChangeLog for the list of changes since 4.0.
|
||||
A number of new platforms are supported; STLport iostreams ported to many new platforms.
|
||||
4.5 should provide for much greater reliability and efficiency, especially in iostreams part.
|
||||
Code bloat should be significantly reduced. Versioning is introduced for dynamic libraries.
|
||||
</p>
|
||||
<span class="heading">STLport 4.0 Release Notes</span>
|
||||
<p>
|
||||
STLport 4.0 is a major release. Finally, it offers complete C++ standard library!
|
||||
Here is a list of major changes in 4.0 :
|
||||
<ul>
|
||||
|
||||
<li>Complete ANSI C++ standard library, including <complex> and SGI iostreams.</li>
|
||||
|
||||
<li>Can be configured to use either SGI or native iostreams.</li>
|
||||
|
||||
<li>Debug mode completely redesigned. Debug mode containers are
|
||||
implemented in terms of wrappers around non-debug ones.
|
||||
That provides for more clean and efficient implementation.
|
||||
In Debug Mode, different namespace <b>_STLD::</b> is being used,
|
||||
so no link-time clashes between debug and non-debug versions are possible.</li>
|
||||
|
||||
<li>New platforms - gcc-2.95, Mingw32, Borland C++ Builder 5.5, SUN CC 6.0 Early Access, SUN CC in compatibility mode.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
Minor changes:
|
||||
<ul>
|
||||
|
||||
<li> std:: is not used for STLport namespace even with SGI iostreams,
|
||||
to avoid possible clashes and facilitate 3rd-party library use.
|
||||
Same macro redefinition technique for _STL:: used to keep clients
|
||||
code which uses literal std::.</li>
|
||||
|
||||
<li>C library headers wrapping changed to account for multiple inclusion tricks
|
||||
(needed by gcc-2.95 mostly)</li>
|
||||
|
||||
<li>auto_ptr updated, now it passes polymorphic tests with VC++</li>
|
||||
|
||||
<li>config changes - "configure" made obsolete and moved into "stlport/config/new_compiler"</li>
|
||||
<li>Lot of minor bugfixes.</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<h2><font color="#000080">STLport 3.2.1 Release Notes</font></h2>
|
||||
|
||||
<p>STLport 3.2.1 is a minor release in terms of functionality, but it is a huge
|
||||
leap forward in terms of usability. </p>
|
||||
|
||||
<h2>std::renaming</h2>
|
||||
3.2.1 finally solved the conflict between STLport string and std::string, which
|
||||
used to be worked around by using namespace stlport::, to avoid link- and run-time
|
||||
clashes. Refer to <a href="vendor_interface.html">"Cooperation with native standard library"</a>
|
||||
section for details.
|
||||
In 3.2.1, new, completely transparent scheme introduced to redefine <b>"std::"</b> in user
|
||||
sources to <b>"stlport::"</b> via macros. Before 3.2.1, it was not possible, because not all headers were provided
|
||||
with necessary wrappers.
|
||||
Now, when user writes <b>"std::"</b> in application code, it yields the same results as if he wrote <b>"stlport::"</b>.<br>
|
||||
The biggest advantage is that now absolutely no modifications in client code are needed to use.
|
||||
STLport instead of native STL lib, which turns STLport into seamless drop-in component!
|
||||
|
||||
<h2>Windows improvements</h2>
|
||||
STLport 3.2.1 provides the mechanism to export static members of default node allocator
|
||||
from a designated user's DLL, which solves the problem observed with default allocator
|
||||
and passing objects across DLL boundaries. Currently, one of user's DLL is supposed to
|
||||
be designated to export STLport symbols. That will change as soon as STLport will provide
|
||||
iostreams library.<p></p>
|
||||
For MT compilation, <b><windows.h></b> is not included anymore to get synchronization
|
||||
function prototypes. That significally reduces compilation time.
|
||||
<p></p>
|
||||
<h2>Quality improvements</h2>
|
||||
<p>3.2.1 provides further code bloat reduction - hashtable uses vector <b><void*></b> internally.</p>
|
||||
<h2>New platforms</h2>
|
||||
Configuration files provided for DEC C++ 6.x/5.x , Borland C++ 5.02, KAI C++.
|
||||
Windows CE configuration provided.
|
||||
<hr>
|
||||
|
||||
<h2><font color="#000080">STLport 3.2 Release Notes</font></h2>
|
||||
|
||||
<p>STLport 3.2 is a major change from 3.12. It provides new components, new wrappers
|
||||
and fixes many portability issues.</p>
|
||||
<h2>New Components</h2>
|
||||
New standard header files are provided : <limits;> and <valarray>.
|
||||
Also, STLport now provide complete set of C library headers which are currently
|
||||
wrappers for either old-style or new-style native C library headers.
|
||||
<h2>Headers reorganization</h2>
|
||||
Main STLport include directory renamed to <b>stlport</b>.
|
||||
Old HP-style STL headers moved to <b>stlport/hp</b> directory.
|
||||
<h2>Quality improvements</h2>
|
||||
<p>3.2 provides new workarounds for standard allocators : EBO (empty-base optimization),
|
||||
for automatic space optimization for instanceless allocators. Allocators with instances
|
||||
now can be used with any compiler. Chunking problem is fixed - no memory overuse.
|
||||
</p>
|
||||
<p>Major restructuring - non-inline code moved to .c implementation files.
|
||||
That makes huge code bloat reduction for compilers that support separate compilation model,
|
||||
like IBM xlC. If this model is not supported, .c file is being included in corresponding .h file.
|
||||
</p>
|
||||
<p><a href="debug_mode.html">Debug</a> mode redesigned for less code bloat and memory footprint.
|
||||
Now it use single-linked lists for iterators lists and tables for error reporting. Also it provides more flexible control on error reporting for user - now you can control whether debug aasertion throws an exception or not, or to supply your own termination routine in addition to reporting one.
|
||||
</p>
|
||||
<h2>New platforms</h2>
|
||||
Configuration files provided for Apogee C++, Borland C++ Builder 4.
|
||||
<h2>Smoother portability</h2>
|
||||
<p>New workarounds are used for compilers with limited capabilities. Standard forms of distance()
|
||||
and operator -> for iterators is supported for them in 3.2. Additional user-level switch
|
||||
_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS is added to use minimum set of default arguments on
|
||||
template classes that have more than one - for example map<>, set<>. This is supposed to help compiling existing standard code which use shortest notation.
|
||||
Many other portability issues reported for 3.12 are fixed, including workaround for famous Sun CC 4.2 bug. _STLP_USE_MFC switch added for MFC cooperation.
|
||||
</p>
|
||||
<h2>Configuration engine changes</h2>
|
||||
<p><a href="configure.html">Configuration</a> switches changed - those describing compiler misfeatures changed so that
|
||||
the compiler that implements complete ANSI C++ Standard and has no bugs would have empty
|
||||
configuration file.
|
||||
</p>
|
||||
<br>
|
||||
<hr>
|
||||
<h2><font color="#000080">STLport 3.12 Release Notes</font></h2>
|
||||
|
||||
<h2>Configuration changes</h2>
|
||||
<p>In 3.12, the confuguration headers stlcomp.h and configure script reside in
|
||||
config/ directory. stlcomp.h has been splitted to compiler-specific-headers. As now stl_config.h
|
||||
includes <config/stlcomp.h>, your compiler must be able to understand UNIX-style paths.
|
||||
Most compilers do that automatically, but some (MetroWerks CodeWarrior) require setting the option to do that..</p>
|
||||
<h2>Cooperation with compiler's C++ library</h2>
|
||||
<p>STLport 3.12 is capable of using separate namespace <b>stlport::</b>
|
||||
to avoid conflicts with standard C++ library that comes with the
|
||||
compiler. If your compiler provides new-style <b><iostream></b>,
|
||||
please be sure to read the <a href="vendor_interface.html">document
|
||||
describing this technique</a>.</p>
|
||||
<h2>New-style iostreams:</h2>
|
||||
<p>In STLport 3.12, <b>_STLP_USE_NEW_IOSTREAMS </b>macro controls
|
||||
whether you are using templatized iostreams or not. This setting is
|
||||
important - STLport's <b><iostream></b> imports appropriate
|
||||
version of native iostreams (<<b>iostream</b>> vs. <<b>iostream.h</b>>
|
||||
depending on it. This also affects the choice of <a href="vendor_interface.html#option_2">own
|
||||
namespace mode</a>.</p>
|
||||
<p>Use of other new-style header names like <tt><<b>vector</b>></tt>
|
||||
with STLport is highly recommended. </p>
|
||||
<h2>allocator<></h2>
|
||||
<p>In STLport 3.12, the default <b>_Alloc</b> parameter to standard
|
||||
container is always <b>allocator<></b> (unlike in SGI STL, where
|
||||
it is only so when the compiler supports partial specialization and
|
||||
other new features).</p>
|
||||
<h2>Underscored names</h2>
|
||||
<p>All inernal names in STLport 3.12 starts with undercsore
|
||||
("_"), as specified by C++ standard.</p>
|
||||
<h2><a name="new%20headers"></a>New-style C library headers</h2>
|
||||
In this release, <b>_STLP_USE_NEW_STYLE_HEADERS</b> only controls
|
||||
STLport choice of using new-style C library headers : <cstdio> vs.
|
||||
<stdio.h>, etc.
|
||||
<h2>Bitset - additional parameter</h2>
|
||||
<p>SGI STL introduced extra template parameter BufSize for bitset : <b>_WordT,
|
||||
</b>which defaults to unsigned long. For 64-bits architectures, you may
|
||||
wish to change it to be long long. Note that explicit use of extra
|
||||
parameter will lead to non-portability with other STL implementations.</p>
|
||||
<h2>Deque - additional parameter</h2>
|
||||
<p>SGI STL introduced extra template parameter BufSize for deque : <tt>deque<class
|
||||
T, class Alloc, size_t BufSize=0></tt>. <br>
|
||||
That allows you to specify deque buffer size on per-instance basis. </p>
|
||||
<p>Some compilers (<b>Borland, Visual, SunPro, ..</b>.) are unhappy
|
||||
about non-type template parameters (particularly when deque is being
|
||||
passed as parameter to functions). For these compilers, only default
|
||||
buffer size option is available. You may still specify buffer size using
|
||||
<tt>__deque__<T,Alloc,BufSize></tt>. </p>
|
||||
<p> Note that explicit use of extra parameter will lead to
|
||||
non-portability with other STL implementations. You may force full
|
||||
version to be the default ( <tt>deque<class T, class Alloc=allocator<T>,
|
||||
size_t BufSize=0></tt> ) by disabling <tt>_STLP_NON_TYPE_TMPL_PARAM_BUG</tt>
|
||||
switch. Note that you may have problems instantiating template functions
|
||||
taking deque as its argument then.</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>
|
||||
79
STLPORT/doc/select_io.html
Normal file
79
STLPORT/doc/select_io.html
Normal file
@@ -0,0 +1,79 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Getting Started: Selecting IOStreams mode</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">Selecting IOStreams Mode</span>
|
||||
|
||||
<h3><b>Major IOStream Modes</b></h3>
|
||||
|
||||
STLport 4.0 may be used in two different major modes :
|
||||
<ul>
|
||||
<li><b>With STLport iostreams (default)</b>. In this mode, you are going to use iostreams
|
||||
and complex libraries provided by STLport.
|
||||
To do so, first you have to build STLport library from sources
|
||||
provided in "src" subdirectory and link your programs with it.
|
||||
This is major change since pre-4.0 releases, please read the instructions carefully.</li>
|
||||
|
||||
<li><b>Without STLport iostreams</b>. In this mode, STLport will use wrappers around
|
||||
your compiler's iostreams and complex libraries, just like in STLport
|
||||
releases prior to 4.0.</li>
|
||||
</ul>
|
||||
|
||||
For any of these modes, please make sure
|
||||
<b>"stlport"</b> directory containing header files
|
||||
is the <b>first</b> one in your include search path when you compile the project<br>
|
||||
|
||||
<h3><a name="no_sgi_iostreams"></a>Installing STLport for use without STLport iostream library ("wrapper mode")</h3>
|
||||
|
||||
In this mode, you will use wrappers around your compiler's iostreams
|
||||
libabry, as in previous STLport releases.
|
||||
|
||||
All you have to do to use STLport in this mode is to uncomment
|
||||
<b>_STLP_NO_OWN_IOSTREAMS</b> setting in <b>"stlport/stl/_site_config.h"</b>
|
||||
to disable use of STLport iostreams and to use wrappers around your existing iostreams.
|
||||
(For SUN CC, you still have to go to "src" subdirectory and do "make" or at least "make prepare" to produce additional .SUNWCCh files necessary for compilation)
|
||||
|
||||
Note though :
|
||||
<ul>
|
||||
<li>For the most modern compilers which implements Koenig lookup properly, this option may not be available due to ambiguities during namespace lookup. Example: gcc-3.0</li>
|
||||
<li>New-style ANSI iostreams and/or complex library
|
||||
may not be provided by your compiler vendor;</li>
|
||||
<li>If provided, vendor iostreams may appear to be slower than STLport version.</li>
|
||||
</ul>
|
||||
If you have decided to disable STLport iostreams, you may stop reading here.
|
||||
To use wrapper mode, you do not have to build any binary libraries, as everything you need
|
||||
is contained in the header files already.
|
||||
|
||||
<h3><a name="beta"></a>Building STLport iostreams library (Default Mode)</h3>
|
||||
|
||||
In this mode, you will use STLport implementation of iostreams instead of the one that comes
|
||||
with your compiler. It does contain some non-template code so you have to build STLport
|
||||
iostreams library in <b>"src"</b> directory to link your project with.
|
||||
|
||||
Below are step-by-step instructions to build STLport library:
|
||||
<ol>
|
||||
<li>Do make sure you have followed instructions for default installation above.</li>
|
||||
|
||||
<li>Go to <b>"src"</b> subdirectory. It contains various makefiles for different compilers.
|
||||
If iostreams library is not yet ported to your compiler (please see <a href="release_notes.html">Release Notes</a> for details), you may revert to use "wrapper" mode or port it. Please refer
|
||||
to <a href="porting_iostreams.html">porting document</a> to learn how to port iostreams library
|
||||
to your compiler. The porting procedure is usually straightforward on UNIXes.
|
||||
</li>
|
||||
|
||||
<li>Using appropriate makefile, do <b>"make clean all"</b> to build STLport libraries
|
||||
(makefiles are set up to build several different flavors - debug/nondebug,
|
||||
static/dynamic versions).
|
||||
<i>Note : your make program may have different name, like "nmake" for Visual C++, so, with "nmake", do "nmake clean all"</i>
|
||||
</li>
|
||||
|
||||
<li>If make fails, you may try fixing the build yourself and/or report it to <a href="http://www.stlport.com/cgi-bin/forum/dcboard.cgi">STLport Forum</a>.
|
||||
</li>
|
||||
|
||||
<li>Do <b>"make install"</b> to install resulting libraries into <b>"lib"</b> subdirectory. On Windows, this step also copies .dll libraries to system directory to be accessible at runtime.</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<h3>Testing STLport</h3>
|
||||
STLport provides two <b>test suites</b> - <a href="testsuite.html">regression
|
||||
test</a> and <a href="eh_testsuite.html">exception handling test</a>.<br>
|
||||
It is recommended that you build and run them in place to verify your new STLport installation is OK.
|
||||
|
||||
</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>
|
||||
86
STLPORT/doc/sgi_stl.html
Normal file
86
STLPORT/doc/sgi_stl.html
Normal file
@@ -0,0 +1,86 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: SGI STL Overview</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">SGI Standard Template Library</span>
|
||||
|
||||
<h3>Overview</h3>
|
||||
<p class="FOOTNOTE"><i>Silicon Graphics has made its implementation of the C++
|
||||
Standard Template Library freely available to the public. The SGI
|
||||
Standard Template Library features thread safety, improved memory
|
||||
utilization, improved run-time efficiency, and new data structures,
|
||||
including hash tables; it also includes a comprehensive conceptual
|
||||
taxonomy of generic software components.</i></p>
|
||||
<p><font size="1">cite from SF BA <a href="http://www.centeradv.com">Center
|
||||
for Advanced Technology</a> C++ ISG presentation</font></p>
|
||||
Visit SGI <a href="http://www.sgi.com/Technology/STL">Standard
|
||||
Template Library User's Guide</a> page to learn more about SGI STL. That
|
||||
excellent site contain full STL documentation, distribution to download
|
||||
and useful links.
|
||||
<h3><a name="efficiency"></a>Efficiency</h3>
|
||||
<p>These are major improvements that make SGI STL the most efficient:</p>
|
||||
<ul>
|
||||
<li><b>Rich set of algorithm specializations.</b> What everybody is
|
||||
looking for in generic library, it's the <b>generic interface</b>,
|
||||
not the <b>same code</b> for every type instantiated. Utilizing
|
||||
<b>__type_traits</b> technique, SGI STL optimizes <b>copy(T*, T*, T*
|
||||
)</b> call for <b>T</b> being builtin type into a single <b>memmove()</b>
|
||||
call, and so on.</li>
|
||||
<li><b>Node allocators.</b> SGI STL implements allocator<T> as a
|
||||
wrapper over thread-safe node allocator engine which is
|
||||
fine-tuned to handle allocation of relatively small chunks of memory
|
||||
very efficiently.</li>
|
||||
</ul>
|
||||
<h3><b><a name="thread_safety"></a>Thread safety </b></h3>
|
||||
<p>Please refer to SGI site for <a href="http://www.sgi.com/Technology/STL/thread_safety.html">detailed
|
||||
document on thread safety</a>. Basic points are:</p>
|
||||
<ul>
|
||||
<li><b>simultaneous read access to the same container from within
|
||||
separate threads is safe;</b></li>
|
||||
<li><b>simultaneous access to distinct containers (not shared between
|
||||
threads) is safe;</b></li>
|
||||
<li><b>user must provide synchronization for all accesses if any
|
||||
thread may modify shared container.</b></li>
|
||||
</ul>
|
||||
<h3><b>Exception safety</b></h3>
|
||||
<p>SGI STL is exception-safe. STLport <a href="exception_safety.html">document
|
||||
on exception safety</a> describes STL guarantees and client requirements.</p>
|
||||
|
||||
<h3><b>Standard compliance</b></h3>
|
||||
<p>SGI STL is committed to close compliance to C++ Standard. With the
|
||||
latest release in Feb 99 and experimental effort continued through 2000,
|
||||
it incorporates the latest "word of the standard".</p>
|
||||
<h3><b>Reliability</b></h3>
|
||||
<p>SGI STL is being shipped with GNU C++ since 2.8.x.<br>
|
||||
That is enormous amount of installations which provide solid feedback to
|
||||
get bugs fixed.</p>
|
||||
<h3><b>Important extensions</b></h3>
|
||||
<p>SGI STL provides the following extensions compared to the C++
|
||||
standard:</p>
|
||||
<ul>
|
||||
<li><b>hashed containers:</b> hash_set, hash_multiset, hash_map,
|
||||
hash_multimap.</li>
|
||||
<li><b>single-linked lists</b> - often very reasonable tradeoff.</li>
|
||||
<li><b>ropes:</b> alternative representation of strings which scale
|
||||
well to very large strings</li>
|
||||
</ul>
|
||||
<h3>Public distribution</h3>
|
||||
<p>SGI STL is being distributed free of charge and restrictions:</p>
|
||||
<p><b><i>Copyright (c) 1994 Hewlett-Packard Company</i></b></p>
|
||||
<p><b><i>Copyright (c) 1996,97 Silicon Graphics Computer Systems, Inc.</i></b></p>
|
||||
<p><i><font size="2">Permission to use, copy, modify, distribute and
|
||||
sell this software and its documentation for any purpose is hereby
|
||||
granted without fee, provided that the above copyright notice appear in
|
||||
all copies and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation. Hewlett-Packard Company makes
|
||||
no representations about the suitability of this software for any
|
||||
purpose. It is provided "as is" without express or implied
|
||||
warranty.</font></i></p>
|
||||
<p><i><font size="2">Permission to use, copy, modify, distribute and
|
||||
sell this software and its documentation for any purpose is hereby
|
||||
granted without fee, provided that the above copyright notice appear in
|
||||
all copies and that both that copyright notice and this permission
|
||||
notice appear in supporting documentation. Silicon Graphics makes no
|
||||
representations about the suitability of this software for any purpose.
|
||||
It is provided "as is" without express or implied warranty.</font></i>
|
||||
</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>
|
||||
43
STLPORT/doc/story.html
Normal file
43
STLPORT/doc/story.html
Normal file
@@ -0,0 +1,43 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: History</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">STLport Story</span>
|
||||
|
||||
<address class="FOOTNOTE">by Boris Fomitchev</address>
|
||||
|
||||
<h3>First Step</h3>
|
||||
|
||||
I started STLport project in Jan'97, shortly after first release of SGI STL.
|
||||
Back then, I was working for <a href="http://www.elbrus.ru">Moscow Center for SPARC Technology</a>.
|
||||
I made a quick-and-dirty port of SGI STL for gcc-2.7.2 and SUN CC 4.2 for internal use.
|
||||
Very proud of myself, I submitted my changes back to SGI team.
|
||||
Matt Austern (still leading library developer) was kind enough to respond to me.
|
||||
However, I realized SGI team were not interested at all in extra portability. So I built my own Web page and started distributing my humble port from there.
|
||||
I named it "Adapted SGI STL" (weird, huh ?). Reasonable name appeared only a few months later.
|
||||
|
||||
|
||||
<h3>"With a little help..."</h3>
|
||||
|
||||
Once the initial port availability was announced, I started to receive strong feedback from
|
||||
users. Many people happened to be interested and willing to contribute to this development.
|
||||
With their help, it only took me a few months to port it to most popular compilers.
|
||||
At the same time, I started to realize infinite potential for improvements in this library.
|
||||
|
||||
<h3>Going Ahead</h3>
|
||||
|
||||
The first time STLport went ahead of SGI STL was introduction of exception handling support. Dave Abrahams implemented exception-safe standard containers and algorithms on the base of SGI STL to present to ANSI C++ Commitee. At the time, no EH guarantees/requirements were present in the draft standard. Dave proposed to merge his changes into STLport, for maintenance reasons, which I happily did. In the meantime, SGI somewhat independently implemented the exception-safety guarantees in the proposal Dave brought before the committee with Greg Colvin. The STLport exception-handling testsuite was instrumental in getting these implementations right. Dave and Greg managed to get the proposal approved by the standards commitee, due in part to the existence of two working implementations.
|
||||
|
||||
<h3>Making the Difference</h3>
|
||||
|
||||
Debug Mode was implemented after "Safe STL" (debug version of HP STL, by Cay Horstmann) in 1997. It is still the feature which makes STLport different from all other standard libraries. No matter how simple the idea of this mode might look, it took several complete redesigns to get it to its current level. I am very pleased to be able to present this unique feature.
|
||||
|
||||
<h3>Letting Go</h3>
|
||||
|
||||
I have to confess that there was a time when I was serious about selling STLport as a commercial library.
|
||||
It took me two years to get a slight idea of how the industry works. So I decided to stick with open source.
|
||||
|
||||
<h3>Growing Up</h3>
|
||||
Using open source component does not necessarily mean relying on self-maintenance and volunteers good will.
|
||||
In 1999, STLport Consulting, Inc. was founded. We offer STLport support contracts as well as custom development and
|
||||
other consulting services. You may reach us at <a href="mailto:consulting@stlport.com">consulting@stlport.com</a>.
|
||||
|
||||
</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>
|
||||
52
STLPORT/doc/testsuite.html
Normal file
52
STLPORT/doc/testsuite.html
Normal file
@@ -0,0 +1,52 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Testsuite</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">STLport Test Suite</span>
|
||||
<p>
|
||||
<font size="1"><em><strong>by Boris Fomitchev</strong></em></font>
|
||||
</p>
|
||||
<h2>Abstract</h2>
|
||||
<p><b>STLport test suite performs extensive test of</b> <b>basic STLport
|
||||
functionality</b>.<br>
|
||||
One of the problems one is faced when deciding whether using STL is the
|
||||
question of reliability. It's a common place when compiler crashes on
|
||||
templates.<br>
|
||||
Obvious question is - how can I be sure the compiler produces valid code
|
||||
when it does <b>not</b> crash ? <br>
|
||||
This test suite answers to this question. It doesn't use too complex
|
||||
construct with STL items. But it does instantiate about every item and
|
||||
checks if it works properly.</p>
|
||||
<h2>The Story</h2>
|
||||
<p>This test suite is derived from <a href="http://www.cygnus.com">Cygnus
|
||||
Solutions</a> STL test suite, which is based on <a href="http://www.objectspace.com">ObjectSpace
|
||||
</a>STL examples. The changes that have been made mostly involve
|
||||
restructuring. You can run a single short test for particular STL
|
||||
construct , or try to compile them all and link to single executable.
|
||||
You may also test if your compiler can handle extremely long source
|
||||
files by compiling a single source including all others.</p>
|
||||
<h2>Portability</h2>
|
||||
<p>Makefiles for most supported compilers are provided with the suite. Look for <i>.mak</i>
|
||||
files in the distribution. It should be not difficult to adjust one of
|
||||
them to your compiler.</p>
|
||||
<h2>How To</h2>
|
||||
<p>The test suite comes in directory <b>test/eh</b> with your STLport
|
||||
distribution.<br>
|
||||
You may have to edit appropriate makefile to fit your compiler and
|
||||
include directories . <br>
|
||||
After you've done, try "<i>make check</i>". This target is
|
||||
output (<i>stl_test.out</i>) of single executable containing all the
|
||||
tests. <br>
|
||||
Compare it with <i>stl_test.exp</i> output. There should be no
|
||||
differences. Note that some tests use random number generators. <i>stl_test.exp</i>
|
||||
is for those having <b>lrand48()</b> function. If your configuration
|
||||
uses <b>rand() </b>function, you should compare the result with <i>stl_test.rand.exp</i>.
|
||||
Obviously, <b>there is no guarantee for matching of different rand()
|
||||
implementations</b>.<br>
|
||||
If some test fails to compile, you may try "make <i>test_name</i>.out"
|
||||
to produce single test executable and run it.</p>
|
||||
<h3>Linux (glibc) note</h3>
|
||||
<p>GNU libc, being used widely on Linux platforms, has different
|
||||
random generator implementation than one used on most UNIX platforms.
|
||||
You should ignore the output difference of tests using random generator.
|
||||
</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>
|
||||
198
STLPORT/doc/thanks.html
Normal file
198
STLPORT/doc/thanks.html
Normal file
@@ -0,0 +1,198 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Acknowledgements</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">Acknowledgements</span>
|
||||
|
||||
<p>Special thanks to:</p>
|
||||
<ul>
|
||||
<li><b>Alexander Stepanov</b> for his fundamental work;</li>
|
||||
<li><b>Matt Austern</b>, for his valuable collaboration</li>
|
||||
<li><b>Dave Abrahams</b>, for his continuous help, exception-handling code contribution,
|
||||
EH testsuite and Metrowerks support</li>
|
||||
<li><b>Cay Horstmann</b>, for debug approach example</li>
|
||||
</ul>
|
||||
Thanks to all <b>contributors</b> who
|
||||
have submitted bug reports, patches and suggestions:
|
||||
<table border="0" cellpadding="4" cellspacing="0" align="center">
|
||||
<tr>
|
||||
<td align="left">
|
||||
<dir>
|
||||
<li>Matt Austern</li>
|
||||
<li>Lo Russo Graziano</li>
|
||||
<li>Kevin G. Walker</li>
|
||||
<li>Enno Rehling</li>
|
||||
<li>Jan Didrik Andersen</li>
|
||||
<li>Cheng-Yen (Vinnie) Liang</li>
|
||||
<li>Jeff Hanson</li>
|
||||
<li>Matt Brincho</li>
|
||||
<li>Oleg Alexsandrovich</li>
|
||||
<li>Martin Abernethy</li>
|
||||
<li>Eelco de Lange</li>
|
||||
<li>Warren Young</li>
|
||||
<li>Dave Abrahams</li>
|
||||
<li>Damian Gilmurray</li>
|
||||
<li>Mark Wells</li>
|
||||
<li>Jeremy Grodberg</li>
|
||||
<li>Ralph Zeller</li>
|
||||
<li>Julian C. Cummings</li>
|
||||
<li>Josh Levenberg</li>
|
||||
<li>Egor Elagin</li>
|
||||
<li>Sean Donnelly</li>
|
||||
<li>Eric Bloodworth</li>
|
||||
<li>Harri Heimo P Hakula</li>
|
||||
<li>John Maddock</li>
|
||||
<li>Per Sabelstrom</li>
|
||||
<li>Franck Lebastard</li>
|
||||
<li>Jeff Greif</li>
|
||||
<li>Marcelo Cantos</li>
|
||||
<li>John Stevenson-Hoare</li>
|
||||
<li>Ryszard Kabatek</li>
|
||||
<li>Eugene Lazutkin</li>
|
||||
<li>David Polock</li>
|
||||
<li>Steve Barnes</li>
|
||||
<li>Chris McKillop</li>
|
||||
<li>Dan Candela</li>
|
||||
<li>Joost Kraaijeveld</li>
|
||||
<li>Raymond Nijssen</li>
|
||||
<li>Paul Maragakis</li>
|
||||
<li>Max Moroz</li>
|
||||
<li>Mark Elbrecht</li>
|
||||
<li>Steven Youngs</li>
|
||||
<li>Joe Buck</li>
|
||||
<li>Doni Grande</li>
|
||||
<li>Catherine Lung</li>
|
||||
<li>Joachim Achtzehnter</li>
|
||||
<li>Steven Woolgar</li>
|
||||
<li>Michael Carr</li>
|
||||
<li>Simon-Pierre Cadieux</li>
|
||||
<li>Tinny Ng</li>
|
||||
<li>Bjorn Fahller</li>
|
||||
<li>Alexander Vanic</li>
|
||||
<li>Roland Hoogendijk</li>
|
||||
<li>Chichiang Wan</li>
|
||||
<li>Chris Atwood</li>
|
||||
<li>Esser Arno</li>
|
||||
<li>Gary Powell</li>
|
||||
<li>Guy Gascoigne</li>
|
||||
<li>Ilya Sharapov</li>
|
||||
<li>Aldona Majorek</li>
|
||||
<li>Tsutomu Yoshida</li>
|
||||
<li>Vasile Gaburici</li>
|
||||
<li>Clive Bluston</li>
|
||||
<li>Harold Putman</li>
|
||||
<li>Hongyao Zhu</li>
|
||||
<li>Stephane Rouleau</li>
|
||||
<li>Robert Kopac</li>
|
||||
<li>Steven Serocki</li>
|
||||
<li>Matti Rintala</li>
|
||||
<li>Ilya Chvetsov</li>
|
||||
<li>Edward Ball</li>
|
||||
<li>Mike Pyle</li>
|
||||
<li>Todd Richmond</li>
|
||||
<li>Gavin Wood</li>
|
||||
<li>Alain Miniussi</li>
|
||||
<li>Michael Entin</li>
|
||||
<li>Kevin Wooten</li>
|
||||
<li>Kees de Bruin</li>
|
||||
<li>Parcival Willems</li>
|
||||
<li>Anton Sergeev</li>
|
||||
<li>Todd Rider</li>
|
||||
<li>Niran Bala</li>
|
||||
<li>Will Fike</li>
|
||||
<li>Petr Ovchenkov</li>
|
||||
<li>Marc W. Mengel</li>
|
||||
<li>Willie Arbuckle</li>
|
||||
<li>Matthew Kelly</li>
|
||||
</dir>
|
||||
</td>
|
||||
<td align="left">
|
||||
<dir>
|
||||
<li>Mikhail Leonov</li>
|
||||
<li>E.Musser</li>
|
||||
<li>Andrew Waters</li>
|
||||
<li>Bruce Alderson</li>
|
||||
<li>Ben Nason</li>
|
||||
<li>Danny Smith</li>
|
||||
<li>Andrey Khovanskiy</li>
|
||||
<li>Ben Liblit</li>
|
||||
<li>Mike Steed</li>
|
||||
<li>Sean Cavanaugh</li>
|
||||
<li>John Hynes</li>
|
||||
<li>Glen Summers</li>
|
||||
<li>Dirk Schreib</li>
|
||||
<li>Jeff Sparkes</li>
|
||||
<li>Ricardo Gayoso</li>
|
||||
<li>John Wiegley</li>
|
||||
<li>Craig Powers</li>
|
||||
<li>Bryan Byrnes</li>
|
||||
<li>Vijay Ramachandran</li>
|
||||
<li>Ed Brey</li>
|
||||
<li>Matthew Collins</li>
|
||||
<li>Jack Andrews</li>
|
||||
<li>Bernd Mohr</li>
|
||||
<li>Charles Burfoot</li>
|
||||
<li>Brett Denner</li>
|
||||
<li>Serge Pashkov</li>
|
||||
<li>George Trojan</li>
|
||||
<li>Bruce Dawson</li>
|
||||
<li>Adam Gates</li>
|
||||
<li>Levente Farkas</li>
|
||||
<li>Mark Laffoon</li>
|
||||
<li>Holger Stasch</li>
|
||||
<li>Anton Lapach</li>
|
||||
<li>Ingo Donasch</li>
|
||||
<li>Jack Andrews</li>
|
||||
<li>Jason Taylor</li>
|
||||
<li>Thomas Witt</li>
|
||||
<li>Mat Marcus</li>
|
||||
<li>Jesse Jones</li>
|
||||
<li>Jim Cole</li>
|
||||
<li>Rene van Oostrum</li>
|
||||
<li>Kenny Simpson</li>
|
||||
<li>Gerd Hoeren</li>
|
||||
<li>Tom Widmer</li>
|
||||
<li>Vadim Egorov</li>
|
||||
<li>Dean Sturtevant</li>
|
||||
<li>Gavin Collins</li>
|
||||
<li>Alberto Barbati</li>
|
||||
<li>Todd Wilson</li>
|
||||
<li>Per Liboriussen</li>
|
||||
<li>Michael Rauch</li>
|
||||
<li>Tanes Sriviroolchai</li>
|
||||
<li>Patrick Luby</li>
|
||||
<li>Joachim Achtzehnter</li>
|
||||
<li>Phillip Toland</li>
|
||||
<li>Val Melamed</li>
|
||||
<li>Johannes Brunen</li>
|
||||
<li>Sergei Nikolaev</li>
|
||||
<li>Levente Farkas</li>
|
||||
<li>Rainer Schnitker</li>
|
||||
<li>Carlos Paniago</li>
|
||||
<li>Yotam Medini</li>
|
||||
<li>Anton Ephanov</li>
|
||||
<li>Doug Gilbert</li>
|
||||
<li>Steven Green</li>
|
||||
<li>Andreas Malzahn</li>
|
||||
<li>Whitney Kew</li>
|
||||
<li>Dan Ingold</li>
|
||||
<li>Ed James-Beckerman</li>
|
||||
<li>John Daniel</li>
|
||||
<li>Marcello Pietrobon</li>
|
||||
<li>Mukesh Kapoor</li>
|
||||
<li>Jens Maurer</li>
|
||||
<li>Stephen Baker</li>
|
||||
<li>Thomas Meischner</li>
|
||||
<li>Bruce Florman</li>
|
||||
<li>Paul Ghezzi</li>
|
||||
<li>Tobias Ernst</li>
|
||||
<li>Steve Loves</li>
|
||||
<li>Piers Haken</li>
|
||||
<li>Michael Kopp</li>
|
||||
<li>Synge Todo</li>
|
||||
</dir>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
</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>
|
||||
27
STLPORT/doc/use_stlport.html
Normal file
27
STLPORT/doc/use_stlport.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Getting Started: Compiling with STLport</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">Compiling Your Project with STLport</span>
|
||||
|
||||
<p>
|
||||
Please make sure
|
||||
<b>"stlport"</b> directory containing header files
|
||||
is the <b>first</b> one in your include search path when you compile the project</p>
|
||||
<p>
|
||||
<i>Note: for SunPro CC 5.0 and higher, there is special directory <b>"stlport/SC5"</b>
|
||||
to be set in search path due to specific SUNpro search rules)</i>
|
||||
</p>
|
||||
|
||||
<h3>Special Notes for STLport as a dynamic library</h3>
|
||||
<p>
|
||||
When using STLport as a dynamic library, please make sure you put in the <b>PATH</b>
|
||||
and distribute it together with your executable. This extra dependency is certainly
|
||||
in favor of using static linking. However, if your project deploys any
|
||||
Win DLL's using STLport, you <b>have</b> to use STLport as Win DLL, too. This is because
|
||||
it contains some static variables (like <b>cerr</b> stream) which would otherwise be duplicated
|
||||
in every DLL. This problem does not arise in Unix world.</p>
|
||||
<p>
|
||||
<i>[ Visual C++ specific ]</i> If using STLport as DLL, please be sure to use <b>/MD[d]</b>
|
||||
compiler option to pick up all dynamic libraries.
|
||||
</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>
|
||||
48
STLPORT/doc/vendor_interface.html
Normal file
48
STLPORT/doc/vendor_interface.html
Normal file
@@ -0,0 +1,48 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Native C++ Library Interface</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">STLport and Vendor's C++ Library</span>
|
||||
<p>Modern compilers come with more or less complete ANSI standard C++
|
||||
library. <a name="native"></a>Below, term "<b>native</b>"
|
||||
is being used to refer to standard C++ headers and object code libraries
|
||||
supplied with the compiler.</p>
|
||||
|
||||
<p>The problem that arises when you want to use STLport with them, is
|
||||
that putting STLport into namespace <b>std::</b> may violate <b>ODR</b>(One
|
||||
Definition Rule). This can happen if some parts of <a href="#native">native</a>
|
||||
library (such as <b>string</b>, <b>locale, iostream</b>) are
|
||||
instantiated already and <b>compiled into</b> native runtime C++ support
|
||||
libraries.</p> <br>
|
||||
|
||||
Example : Visual C++ 6.x
|
||||
|
||||
<p> In practice, if the compiler supplies new-style <b><iostream>,</b>
|
||||
you have this problem almost for sure - typically that means you have
|
||||
some <b><string></b> stuff compiled into native C++ object
|
||||
library. The clash can happen even if you do not utilize new-style
|
||||
iostreams.</p>
|
||||
|
||||
<p>Even if you use STLport with its own iostreams, which means your code do not
|
||||
use any part of native C++ standard library, you may still encounter clashes at
|
||||
link stage. Just magine using 3rd-party lib which was compiled with
|
||||
native library.<br> </p>
|
||||
<p><b>To resolve this namespace conflict, after long experiments,
|
||||
it was decided to put STLport into its own namespace "_STL::"</b>.
|
||||
<br>
|
||||
This provides seamless drop-in compatibility and ensures no conflicts
|
||||
are ever possible.</p>
|
||||
|
||||
<p>To provide more portability for your code and to make sure
|
||||
you use <b>_STL::</b> components,
|
||||
not the native <b>std::</b> one, <i>STLport provides macro redefinition
|
||||
of <b>std::</b> into <b>_STL::</b></i>.
|
||||
This is completely transparent to the user. </p>
|
||||
<p>
|
||||
As STLport code uses namespace different from <b>std::</b>,
|
||||
it never clashes with native library - neither at compile nor at link time.
|
||||
</p>
|
||||
<p>For the most modern compilers which implements Koenig lookup properly, "wrapper mode" w/o STLport iostreams may not be available due to ambiguities during namespace lookup. Example: gcc-3.0.
|
||||
</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>
|
||||
52
STLPORT/doc/wrappers.html
Normal file
52
STLPORT/doc/wrappers.html
Normal file
@@ -0,0 +1,52 @@
|
||||
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Wrappers Technique</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">Wrapper Technique in STLport</span>
|
||||
<p>
|
||||
Considerable point of non-portability was the lack of default
|
||||
template class parameters in many compilers. C++ template syntax doesn't
|
||||
allow an easy way to hide that behind any macro magic.
|
||||
<br>STLport uses wrapper technique to work around that:<br>
|
||||
Full functionality for <i>'container'</i> is implemented via class <i>'__container__'</i>.
|
||||
</p>
|
||||
<p>For example:</p>
|
||||
<pre><tt>#ifdef _STLP_DEFAULT_TYPE_PARAM
|
||||
template <class T, class Alloc = alloc>
|
||||
#else
|
||||
# define vector __vector
|
||||
template <class T, class Alloc>
|
||||
#endif
|
||||
class vector {
|
||||
public:
|
||||
......
|
||||
#ifdef _STLP_DEFAULT_TYPE_PARAM
|
||||
define __vector__ vector
|
||||
# else
|
||||
template <class T>
|
||||
class vector : public __vector__<T,alloc>
|
||||
{
|
||||
.....
|
||||
#define __vector__ __vector
|
||||
# endif /* _STLP_DEFAULT_TYPE_PARAM */</tt></pre>
|
||||
So, you are provided with two versions of container: with and without
|
||||
default parameters. It buys you a way to access full functionality while
|
||||
not breaking code using the short notation. <br>
|
||||
If you wish to specify the allocator parameter, use <tt>__vector__</tt>.
|
||||
For default alloc parameter, use <tt>vector</tt>. <br>
|
||||
I would recommend that you <tt>#define</tt> some alias for <tt>__vector__</tt>,
|
||||
to be able to switch easily. <br>
|
||||
If you don't use different allocators, don't bother.
|
||||
<p><b>New in STLport 3.2:</b><br>
|
||||
<tt>_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS</tt> switch is introduced for user to take control
|
||||
of wrappers behavior with classes that have more than one default template argument. With this switch defined,
|
||||
STLport will use minimum set of default arguments on template classes that have more than one -
|
||||
for example map<>, set<>.
|
||||
This is supposed to help compiling existing standard code which use shortest notation.</p>
|
||||
|
||||
<p>Here is the list of compilers that cannot handle <b>dependant</b>
|
||||
default template parameters:<br>
|
||||
SunPro CC, BC++ 4.52, VC++ 4.2, xlC 3.1.4, DEC C++ 5.5, Visual Age C++
|
||||
3.0.</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>
|
||||
Reference in New Issue
Block a user