86 lines
7.2 KiB
HTML
86 lines
7.2 KiB
HTML
<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> |