Compare commits

...
3 Commits
Author SHA1 Message Date
Andrey Semashev d947b1154a Boost.Log merged to trunk.
[SVN r83860]
2013-04-13 12:30:25 +00:00
nobody fa425f8111 This commit was manufactured by cvs2svn to create tag
'Version_1_17_0'.

[SVN r8293]
2000-11-22 09:04:29 +00:00
nobody a340c71456 This commit was manufactured by cvs2svn to create branch
'boost-graph-library'.

[SVN r7698]
2000-09-09 10:20:25 +00:00
85 changed files with 3880 additions and 1 deletions
+52
View File
@@ -2,3 +2,55 @@
path = libs/smart_ptr
url = ../smart_ptr.git
fetchRecurseSubmodules = on-demand
[submodule "array"]
path = libs/array
url = ../array.git
fetchRecurseSubmodules = on-demand
[submodule "utility"]
path = libs/utility
url = ../utility.git
fetchRecurseSubmodules = on-demand
[submodule "functional"]
path = libs/functional
url = ../functional.git
fetchRecurseSubmodules = on-demand
[submodule "config"]
path = libs/config
url = ../config.git
fetchRecurseSubmodules = on-demand
[submodule "type_traits"]
path = libs/type_traits
url = ../type_traits.git
fetchRecurseSubmodules = on-demand
[submodule "integer"]
path = libs/integer
url = ../integer.git
fetchRecurseSubmodules = on-demand
[submodule "compose"]
path = libs/compose
url = ../compose.git
fetchRecurseSubmodules = on-demand
[submodule "rational"]
path = libs/rational
url = ../rational.git
fetchRecurseSubmodules = on-demand
[submodule "timer"]
path = libs/timer
url = ../timer.git
fetchRecurseSubmodules = on-demand
[submodule "random"]
path = libs/random
url = ../random.git
fetchRecurseSubmodules = on-demand
[submodule "iterator"]
path = libs/iterator
url = ../iterator.git
fetchRecurseSubmodules = on-demand
[submodule "conversion"]
path = libs/conversion
url = ../conversion.git
fetchRecurseSubmodules = on-demand
[submodule "log"]
path = libs/log
url = ../log.git
fetchRecurseSubmodules = on-demand
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

+148
View File
@@ -0,0 +1,148 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Boost C++ Libraries</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1>Welcome to Boost.org!</h1>
<p>The Boost web site provides free, peer-reviewed, C++ <a href="libraries.htm">libraries</a>.
The emphasis is on portable libraries which work well with the C++ Standard
Library.</p>
<p><a href="more/lib_guide.htm">Library Requirements and Guidelines</a> and <a href="more/submission_process.htm">Library
Submission Process</a> provides basic information for library authors.</p>
<p>If you are interested in who writes the libraries and maintains the web site,
check out <a href="people.htm">people</a>.</p>
<p>The <a href="more/faq.htm">FAQ</a> answers questions we hope someone will
bother to ask.</p>
<p>You may <a href="file:///c:/boost/site/boost_all.zip">download all of boost</a>
as a single ZIP file. Click here for <a href="libraries.htm#Download">download</a>
details.&nbsp; The source code is also publicly accessible in a CVS <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/?cvsroot=boost">repository</a>.</p>
<p>See <a href="libs/compiler_status.htm">Compiler Status</a> to find out what
library works with which compiler.</p>
<h2><a name="Mailing List">Membership</a></h2>
<p>If you are interested in Boost.org, please join our mailing list for
discussions of both technical and site-related issues, and to participate in
library reviews. Discussions can be received via email in summary or in full, or
viewed online via a web browser. We use the <a href="http://www.egroups.com">eGroups</a>
list hosting service. Subscribe or unsubscribe by sending email to <a href="mailto:boost-subscribe@egroups.com">boost-subscribe@egroups.com</a>&nbsp;
or <a href="mailto:boost-unsubscribe@egroups.com">boost-unsubscribe@egroups.com</a>
respectively, or go to the eGroups <a href="http://www.egroups.com/list/boost">list
manager home page</a>.&nbsp; Dave Abrahams and Beman Dawes are the list
moderators.</p>
<p>For mailing list members only, preliminary libraries under discussion are
available from the eGroups <a href="http://www.egroups.com/files/boost/">Files
section</a> (formerly called the &quot;vault&quot;).</p>
<p>Beman Dawes is the Boost <a name="webmaster">webmaster</a>; email him at <a href="mailto:beman@boost.org">beman@boost.org</a>
with any concerns you don't want to just post to the mailing list.</p>
<h2>Latest News</h2>
<p>August 3, 2000 - Version 1.17.0</p>
<ul>
<li><a href="libs/array/array.htm">Array Library</a> added - An STL compliant
container wrapper for arrays of constant size from Nicolai Josuttis.</li>
<li><a href="libs/array_traits/index.html">array traits</a> header renamed
array_traits.hpp (was array.hpp).</li>
<li><a href="libs/random/index.html">Random Number Library</a>: more minor
changes to support more compilers.</li>
<li><a href="libs/smart_ptr/index.htm">Smart Pointer Library</a>: performance
reducing exception-specifications removed.</li>
<li><a href="libs/utility/index.htm">Utility Library</a>: compiler and test
program fixes for call_traits, compressed_pair, and type_traits.</li>
<li><a href="libs/utility/index.htm">Utility Library</a>: updated <a href="boost/cast.hpp">cast.hpp</a>
to clear compiler warning messages..</li>
<li>Linux <a href="libs/compiler_status.htm">Compiler Status</a> added.</li>
<li>Boost source code now lives in a publicly accessible Concurrent Versions
System (CVS) <a href="http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/?cvsroot=boost">repository</a>.</li>
</ul>
<p>July 5, 2000 - Version 1.16.1</p>
<ul>
<li><a href="libs/integer/index.htm">Integer</a> library: fixed <a href="boost/cstdint.hpp">cstdint.hpp</a>
bug, added <a href="libs/integer/cstdint_test.cpp">cstdint_test.cpp</a>,
updated <a href="libs/integer/cstdint.htm">docs</a>.</li>
<li><a href="libs/random/index.html">Random Number Library</a>: minor fixes to
<a href="boost/random.hpp">random.hpp</a> and <a href="libs/random/random_test.cpp">random_test.cpp</a>
to support more compilers.</li>
<li><a href="libs/utility/index.htm">Utility Library</a>: updated <a href="boost/cast.hpp">cast.hpp</a>
with more Microsoft compiler workarounds.</li>
<li><a href="libs/utility/index.htm">Utility Library</a>: updated <a href="libs/utility/call_traits.htm">call_traits
docs</a>, added <a href="libs/utility/call_traits_test.cpp">call_traits_test.cpp</a></li>
<li><a href="libs/utility/index.htm">Utility Library</a>: cleanup and bug
fixes for <a href="boost/operators.hpp">operators.hpp</a> and <a href="libs/utility/operators_test.cpp">operators_test.cpp</a></li>
</ul>
<p>June 28, 2000 - Version 1.16.0:</p>
<ul>
<li>Added <a href="libs/functional/index.html">Functional Library</a> -
Enhanced function object adaptors from Mark Rodgers.</li>
<li>Added missing <a href="libs/random/index.html">Random Number Library</a>
files.</li>
<li>Updated <a href="libs/utility/operators.htm">operators docs</a> and <a href="boost/operators.hpp">operators.hpp</a>.</li>
<li>New <a href="boost/iterator.hpp">iterator.hpp</a> header.</li>
<li>Minor <a href="boost/rational.hpp">rational.hpp</a>, <a href="libs/rational/rational_example.cpp">rational_example.cpp</a>,
and <a href="libs/integer/integer_traits_test.cpp">integer_traits_test.cpp</a>
changes to support more compilers.</li>
<li>Revised <a href="boost/cast.hpp">cast.hpp</a>; removed implicit_cast, plus
fixes for broken compilers.</li>
<li>Minor <a href="boost/smart_ptr.hpp">smart_ptr.hpp</a> workaround for some
GCC builds</li>
<li>Several <a href="boost/config.hpp">config.hpp</a> changes for Microsoft,
Intel, and other compilers.</li>
<li>Added <a href="libs/config/index.htm">Configuration Header</a> page and
test program.</li>
<li>Added Experimental <a href="libs/compiler_status.htm">Compiler Status</a>
page showing what library works with which compilers.</li>
</ul>
<p>June 21, 2000 - Version 1.15.1 - Fixes to <a href="boost/cast.hpp">cast.hpp</a>
and <a href="libs/utility/operators.htm">operators</a> fix. Minor additions to <a href="boost/config.hpp">config.hpp</a>
for Microsoft compilers. The 1.15.0 operators changes seem to have introduced
incompatibilities.&nbsp; We are working on fixing them, and have started to
build a regression test to prevent similar future problems.</p>
<p>June 17, 2000 - Version 1.15.0 - <a href="libs/random/index.html">Random
Number Library</a> from Jens Maurer added. Updated utility library <a href="libs/utility/operators.htm">operators</a>
eliminates code bloat. Minor additions to <a href="boost/config.hpp">config.hpp</a>
and <a href="boost/cast.hpp">cast.hpp</a> for Microsoft compilers.</p>
<p>May 29, 2000 - Version 1.14.3 - Minor additions to <a href="boost/config.hpp">config.hpp</a>
for Borland compilers. Minor fix to <a href="libs/utility/type_traits.htm">type_traits</a>
example. Minor web site fixes. <a href="more/formal_review_process.htm">Library
Formal Review Process</a> page added.</p>
<p>May 9, 2000 - Version 1.14.2 - No libraries updated. <a href="more/lib_guide.htm">Library
Requirements and Guidelines</a> expanded, <a href="more/submission_process.htm">Library
Submission Process</a> added.</p>
<p>March 17, 2000 - Version 1.14.1 - Minor fix to <a href="boost/rational.hpp">rational.hpp</a>.
Minor documentation changes to the <a href="libs/smart_ptr/index.htm">Smart
Pointer</a> Library and <a href="libs/utility/call_traits.htm">call_traits</a>, <a href="libs/utility/compressed_pair.htm">compressed_pair</a>,
and <a href="libs/utility/type_traits.htm">type_traits</a>. Updated <a href="more/lib_guide.htm">Library
Guidelines</a> and <a href="people.htm">People</a> page.</p>
<p>March 5, 2000 - Version 1.14.0 -&nbsp; <a href="libs/integer/index.htm">Integer
Library</a> status upgraded after removing bin_bun.hpp. The
&quot;Experimental&quot; library category has been removed; the boost
files/vault now serves the purpose. Minor fix to <a href="boost/smart_ptr.hpp">smart_ptr.hpp</a>
line endings.</p>
<p>February 29, 2000 - Version 1.13.0 - Adds <a href="libs/utility/index.htm">Utility
Library</a>&nbsp; <a href="libs/utility/type_traits.htm">type_traits</a>, <a href="libs/utility/call_traits.htm">call_traits</a>,
and <a href="libs/utility/compressed_pair.htm">compressed_pair</a> headers from
John Maddock, Steve Cleary and Howard Hinnant.</p>
<p>February 23, 2000 - Version 1.12.0 - Adds a <a href="libs/integer/integer_traits.html">integer_traits</a>
header from Jens Maurer to the <a href="libs/integer/index.htm">Integer Library</a>.</p>
<p>February 21, 2000 - Version 1.11.2 - <a href="libs/smart_ptr/smarttests.htm">Smart
pointer timings</a> added (thanks to Gavin Collings). Minor fix <a href="libs/min_rand/index.htm">min_rand</a>
sample program. Minor fixes to <a href="boost/config.hpp">config.hpp</a>.</p>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B %Y" startspan -->03 August 2000<!--webbot bot="Timestamp" endspan i-checksum="31242" --></p>
</body>
</html>
+88
View File
@@ -0,0 +1,88 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Libraries</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta name="Microsoft Border" content="none, default">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1>Boost Libraries</h1>
<ul>
<li><a href="libs/array/index.htm">array</a> - STL compliant container wrapper
for arrays of constant size from Nicolai Josuttis.</li>
<li><a href="libs/compose/index.htm">compose</a> - functional composition
adapters for the STL from Nicolai Josuttis.</li>
<li><a href="libs/dir_it/index.htm">dir_it</a> - a set of file system
directory level iterators from Dietmar Kühl.</li>
<li><a href="libs/functional/index.html">functional</a> - enhanced function
object adaptors from Mark Rodgers.</li>
<li><a href="libs/integer/index.htm">integer</a> - headers for dealing with
integral types.</li>
<li><a href="libs/random/index.html">random</a> - a complete system for random
number generation from Jens Maurer.</li>
<li><a href="libs/rational/index.html">rational</a> - a rational number class
from Paul Moore.</li>
<li><a href="libs/smart_ptr/index.htm">smart_ptr</a> - four smart pointer
classes from Greg Colvin and Beman Dawes.</li>
<li><a href="libs/timer/index.htm">timer</a> - event timer, progress timer,
and progress display classes from Beman Dawes</li>
<li><a href="libs/utility/index.htm">utility</a> - various utility classes and
functions:
<ul>
<li><a href="libs/utility/call_traits.htm">call_traits</a> Defines types
for passing parameters from John Maddock, Howard Hinnant, et al.</li>
<li><a href="libs/utility/compressed_pair.htm">compressed_pair</a> Empty
member optimization from John Maddock, Howard Hinnant, et al.</li>
<li><a href="libs/utility/operators.htm">operators</a> Templates ease
arithmetic classes and iterators from Dave Abrahams and Jeremy Siek</li>
<li><a href="libs/utility/type_traits.htm">type_traits</a> Templates for
fundamental properties of types from John Maddock, Steve Cleary, et al.</li>
<li><a href="libs/utility/utility.htm">utility</a> Class <b>noncopyable</b>
plus <b>next()</b> and <b>prior()</b> template functions from Dave
Abrahams</li>
</ul>
</li>
</ul>
<p>See <a href="libs/compiler_status.htm">Compiler Status</a> to find out what
library works with which compiler.</p>
<h2>Obsolete Libraries</h2>
<ul>
<li><a href="libs/min_rand/index.htm">min_rand</a> - a random number generator
class from Beman Dawes. Replaced by <a href="libs/random/index.html">random</a>.</li>
</ul>
<h2>Beta Libraries</h2>
<ul>
<li><a href="libs/array_traits/index.html">array_traits</a> - tools to treat
built-in arrays more like STL containers from Dietmar Kühl. Also see <a href="libs/array/index.htm">array</a>.</li>
<li><a href="libs/utility/cast.htm">casts</a> - cast templates improve clarity
and safety; utility library contribution from Dave Abrahams and Kevlin
Henney.</li>
<li><a href="libs/pri_queue/index.html">heaps</a> - a heap of priority queues
from Dietmar Kühl.</li>
</ul>
<h2><a name="Download">Download</a></h2>
<p>You may <a href="boost_all.zip">download all of boost</a> as a single ZIP
file.&nbsp; As many boost headers include other boost headers, installing one at
at time is painful. This is a first try at making installation easier.&nbsp;</p>
<p>If you don't already have a ZIP file decoder, download one from the <a href="http://www.info-zip.org/pub/infozip/">Info-ZIP</a>
web site.</p>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan -->03 Aug 2000<!--webbot bot="Timestamp" endspan i-checksum="14750" --></p>
</body>
</html>
Submodule
+1
Submodule libs/array added at 938a4c0728
+57
View File
@@ -0,0 +1,57 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Compiler Status Report</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1>Compiler Status</h1>
<p>Will all boost libraries work with your compiler?&nbsp; Unfortunately, the
answer is &quot;it depends.&quot;.</p>
<p>Boost libraries rely on modern C++ features such as templates and the C++
Standard Library.&nbsp; But even today, years after the adoption of the C++
Standard, some compilers still don't support important features like partial
template specialization.</p>
<p>Boost library authors often expend a great deal of effort trying to work
around compiler deficiencies.&nbsp; Nevertheless, some libraries will not
compile at all with certain compilers or may have crippled functionality.&nbsp;
Even if the current release of a compiler supports a boost library, older
version of the compiler may not work properly.</p>
<h2>Compiler Status Tables</h2>
<ul>
<li><a href="cs-linux2.html">Linux/x86</a> Contributed by Jens Maurer</li>
<li><a href="cs-win32.html">Windows NT / Windows 2000</a> Contributed by Beman
Dawes</li>
</ul>
<p>Boost releases are run through a regression test which automatically
generates the above tables. Unless otherwise indicated, the C++ Standard Library
implementation is the one shipped with the compiler.</p>
<p><b>Warning:</b> These tables are not a good indication of a particular
compiler's compliance with the C++ Standard.&nbsp; The boost libraries often
contain workarounds which mask compiler deficiencies.</p>
<p><b>Warning: </b>The regression test is under development and cannot yet be
relied upon.&nbsp; The current version is a compile only test; the programs are
not executed or otherwise tested.&nbsp; Even the compilation results may be
spurious; many negative results stem from problems with the immature test suite
rather that with the library or compiler.&nbsp; Furthermore, some library tests
have not yet been included.</p>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B %Y" startspan -->03 August 2000<!--webbot bot="Timestamp" endspan i-checksum="31242" --></p>
</body>
</html>
Submodule
+1
Submodule libs/compose added at 8e7964a290
Submodule
+1
Submodule libs/config added at 65a55d30c8
+1
Submodule libs/conversion added at fe3a3a91d0
+94
View File
@@ -0,0 +1,94 @@
<html>
<head>
<title>
Compiler Status: Linux/x86
</title>
</head><body bgcolor="#FFFFFF" text="#000000">
<h1><img border="0" src="../c++boost.gif" width="277" height="86"></h1>
<h1>Compiler Status: Linux/x86</h1>
<p><b>Run Date:</b> 31 Jul 2000 GMT</p>
<p>
<table border="1" cellspacing="0" cellpadding="5">
<tr>
<td>Program</td>
<td>GNU<br>GCC<br>2.95.2</td>
<td>GNU<br>GCC<br>2.95.2<br>STLport<br>4.0 beta 8</td>
</tr>
<tr>
<td><a href="config/config_test.cpp">config/config_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="functional/function_test.cpp">functional/function_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="integer/cstdint_test.cpp">integer/cstdint_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="integer/integer_test.cpp">integer/integer_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="integer/integer_traits_test.cpp">integer/integer_traits_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="rational/rational_example.cpp">rational/rational_example.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="random/random_test.cpp">random/random_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="random/random_demo.cpp">random/random_demo.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="smart_ptr/smart_ptr_test.cpp">smart_ptr/smart_ptr_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="utility/call_traits_test.cpp">utility/call_traits_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="utility/cast_test.cpp">utility/cast_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="utility/compressed_pair_test.cpp">utility/compressed_pair_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="utility/iterators_test.cpp">utility/iterators_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="utility/operators_test.cpp">utility/operators_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="utility/type_traits_test.cpp">utility/type_traits_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
</tr>
</table>
</body>
</html>
+150
View File
@@ -0,0 +1,150 @@
<html>
<head>
<title>
Compiler Status: Windows NT / Windows 2000
</title>
</head><body bgcolor="#FFFFFF" text="#000000">
<h1><img border="0" src="../c++boost.gif" width="277" height="86"></h1>
<h1>Compiler Status: Windows NT / Windows 2000</h1>
<p><b>Run Date:</b> 03 Aug 2000 GMT</p>
<p>
<table border="1" cellspacing="0" cellpadding="5">
<tr>
<td>Program</td>
<td>Borland<br>BCC<br>5.4</td>
<td>Borland<br>BCC<br>5.5</td>
<td>Metrowerks<br>CodeWarrior<br>5.3</td>
<td>Microsoft<br>VC++<br>6.0 SP3</td>
<td>Microsoft<br>VC++<br>6.0 SP3<br>STLport<br>3.2.1</td>
</tr>
<tr>
<td><a href="config/config_test.cpp">config/config_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="array/array1.cpp">array/array1.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>no</td>
<td>no</td>
</tr>
<tr>
<td><a href="functional/function_test.cpp">functional/function_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>no</td>
<td>yes</td>
<td>no</td>
</tr>
<tr>
<td><a href="integer/cstdint_test.cpp">integer/cstdint_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="integer/integer_test.cpp">integer/integer_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>no</td>
</tr>
<tr>
<td><a href="integer/integer_traits_test.cpp">integer/integer_traits_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="rational/rational_example.cpp">rational/rational_example.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="random/random_test.cpp">random/random_test.cpp</a></td>
<td>no</td>
<td>yes</td>
<td>no</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="random/random_demo.cpp">random/random_demo.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>no</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="smart_ptr/smart_ptr_test.cpp">smart_ptr/smart_ptr_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="utility/call_traits_test.cpp">utility/call_traits_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>no</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="utility/cast_test.cpp">utility/cast_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="utility/compressed_pair_test.cpp">utility/compressed_pair_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>no</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="utility/iterators_test.cpp">utility/iterators_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="utility/operators_test.cpp">utility/operators_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td><a href="utility/type_traits_test.cpp">utility/type_traits_test.cpp</a></td>
<td>yes</td>
<td>yes</td>
<td>no</td>
<td>yes</td>
<td>yes</td>
</tr>
</table>
</body>
</html>
+1
Submodule libs/functional added at be3e62f05e
Submodule
+1
Submodule libs/integer added at 12d2455dd8
Submodule
+1
Submodule libs/iterator added at dc423f2627
Submodule
+1
Submodule libs/log added at 6a032b633e
Submodule
+1
Submodule libs/random added at a9b24d1f1a
Submodule
+1
Submodule libs/rational added at 80bb46d407
+215
View File
@@ -0,0 +1,215 @@
#!/usr/bin/python
# boost compilation regression test
# Usage: regrtest [*|compiler] [*|library/program]
#
# Default: regrtest * *
#
# Compilers: bcc54 = Borland 5.4
# bcc55 = Borland 5.5
# cw = Metrowerks CodeWarrior
# gcc = GNU GCC/egcs
# vc = Microsoft Visual C++
# vcstlport = Microsoft Visual C++ with STLport library
#
# Examples: regrtest
# regrtest
# regrtest gcc
# regrtest * smart_ptr/smart_ptr_test.cpp
# regrtest gcc smart_ptr/smart_ptr_test.cpp
#
# Note: use the following command line syntax if output is to be redirected:
# python regrtest.py [*|compiler] [*|library/program] >log 2>&1
# Revision history:
# 21 Jun 00 Redesign to allow specifying compiler and program (Beman Dawes)
# 18 Jun 00 Initial Version (Beman Dawes)
# The Metrowerks and Microsoft compilers require various environment variables be set.
# See mwcc -help
# See http://msdn.microsoft.com/library/devprods/vs6/visualc/vccore/_core_building_on_the_command_line.3a_.overview.htm
# Others:
# See bcb4.hlp. Don't bother with bcb4tools.hlp; it has a bad link to the command line options
import sys
import os
import time
#------------------------------------------------------------------------------#
def invoke( desc, command ):
print " ", desc
f.write( "<td>" )
print " ", command #script debugging aid
sys.stdout.flush()
rs=os.system( command )
print " return status: ", rs
if rs==0:
f.write( "yes" )
else:
f.write( "no" )
f.write( "</td>\n" )
#------------------------------------------------------------------------------#
def compile( program ):
fullpath= path + "/libs/" + program
print
print "*****", program, "*****"
f.write( "<tr>\n" )
f.write( "<td><a href=\"" + program + "\">" + program + "</a></td>\n" )
if sys.platform == "linux2":
if compiler_arg == "*" or compiler_arg == "gcc":
invoke( "GCC 2.95.2", 'g++ -ftemplate-depth-30 -I' + path + ' ' + fullpath )
if compiler_arg == "*" or compiler_arg == "gcc-stlport":
invoke( "GCC 2.95.2 STLport 4.0b8", 'g++ -V 2.95.2-stlport -ftemplate-depth-30 -I' + path + ' ' + fullpath )
# if compiler_arg == "*" or compiler_arg == "gcc-exp":
# invoke( "GCC 2.96-xxx experimental", '/opt/exp/gcc/bin/gcc -ftemplate-depth-30 -I' + path + ' ' + fullpath )
else:
if compiler_arg=="*" or compiler_arg=="bcc54":
bcc54_path=os.environ["BOOST_BCC54_PATH"]
invoke( "Borland C++ 5.4", "\"" + bcc54_path + "/bcc32\" -I" + path + " -j10 -q " + fullpath )
if compiler_arg=="*" or compiler_arg=="bcc55":
bcc55_path=os.environ["BOOST_BCC55_PATH"]
invoke( "Borland C++ 5.5", "\"" + bcc55_path + "/bcc32\" -I" + path + " -j10 -q " + fullpath )
# GCC 2.95.2 is looping on some tests, so only invoke if asked for by name
#if compiler_arg=="*" or compiler_arg=="gcc":
if compiler_arg=="gcc":
# TODO: fix the absolute STLport paths
invoke( "GNU GCC", "c++ -ftemplate-depth-30 -I" + path + " -IC:/stl/STLport-4.0b8/stlport " + fullpath + " c:/stl/STLport-4.0b8/lib/libstlport_gcc.a" )
if compiler_arg=="*" or compiler_arg=="cw":
invoke( "Metrowerks CodeWarrior", "mwcc -maxerrors 10 -I- -I" + path + " " + fullpath )
#John Maddock says use /Zm400 switch; it increases compiler memory
if compiler_arg=="*" or compiler_arg=="vc":
invoke( "VC++ with MS library", 'cl /nologo /Zm400 /MDd /W3 /GR /GX /Zi /Od /GZ /I "' + path + '" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_CONSOLE" ' + fullpath )
if compiler_arg=="*" or compiler_arg=="vcstlport":
stl=os.environ["BOOST_STLPORT_PATH"]
invoke( "VC++ with STLport library", 'cl /nologo /Zm400 /MDd /W3 /GR /GX /Zi /Od /GZ /I "' + stl + '" /I "' + path + '" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_CONSOLE" ' + fullpath )
f.write( "</tr>\n" )
#------------------------------------------------------------------------------#
def library():
print
print "***** Boost Library *****"
f.write( "<tr>\n" )
f.write( "<td>Boost library build</td>\n" )
#if compiler_arg=="*" or compiler_arg=="bcc32":
#if compiler_arg=="*" or compiler_arg=="gcc":
#if compiler_arg=="*" or compiler_arg=="cw":
#if compiler_arg=="*" or compiler_arg=="vc":
# command='cl /nologo /MDd /W3 /GR /GX /Zi /Od /GZ /I "' + path + '" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB /c"'
# command=command + " " + path + "/libs/" + ...
# invoke( "VC++ with MS library", command )
# invoke( "MS Lib with MS library", 'lib /nologo /out:"boost_vc.lib" boost_timer_vc.obj boost_prg_timer_vc.obj boost_prg_display_vc.obj' )
#if compiler_arg=="*" or compiler_arg=="vcstlport":
f.write( "</tr>\n" )
#---------------------------------- main ------------------------------------#
# set up environment variables
path=os.environ["BOOST_PATH"]
compiler_arg="*"
if len(sys.argv)>1:
compiler_arg=sys.argv[1]
program_arg="*"
if len(sys.argv)>2:
program_arg=sys.argv[2]
if sys.platform == "linux2":
platform = "Linux/x86"
elif sys.platform == "win32":
platform = "Windows"
if os.name == "nt":
platform = platform + " NT / Windows 2000"
else:
print "**** Error: unknown platform ****"
sys.exit(1)
f=open( "cs-" + sys.platform + ".html", "w" )
f.write( "<html>\n<head>\n<title>\nCompiler Status: " + platform + "\n</title>\n</head>" )
f.write( "<body bgcolor=\"#FFFFFF\" text=\"#000000\">\n" )
f.write( "<h1><img border=\"0\" src=\"../c++boost.gif\" width=\"277\" height=\"86\"></h1>\n" )
f.write( "<h1>Compiler Status: " + platform + "</h1>\n" )
f.write( "<p><b>Run Date:</b> " + time.strftime("%d %b %Y GMT", time.gmtime(time.time())) + "</p>\n" )
f.write( "<p>\n" )
f.write( "<table border=\"1\" cellspacing=\"0\" cellpadding=\"5\">\n" )
f.write( "<tr>\n" )
f.write( "<td>Program</td>\n" )
if sys.platform == "linux2":
if compiler_arg == "*" or compiler_arg == "gcc":
f.write( "<td>GNU<br>GCC<br>2.95.2</td>\n" )
if compiler_arg == "*" or compiler_arg == "gcc-stlport":
f.write( "<td>GNU<br>GCC<br>2.95.2<br>STLport<br>4.0 beta 8</td>\n" )
# if compiler_arg == "*" or compiler_arg == "gcc-exp":
# f.write( "<td>GNU<br>GCC<br>2.96-xxx experimental</td>\n" )
else:
if compiler_arg=="*" or compiler_arg=="bcc54":
f.write( "<td>Borland<br>BCC<br>5.4</td>\n" )
if compiler_arg=="*" or compiler_arg=="bcc55":
f.write( "<td>Borland<br>BCC<br>5.5</td>\n" )
# GCC 2.95.2 is looping on some tests, so only invoke if asked for by name
#if compiler_arg=="*" or compiler_arg=="gcc":
if compiler_arg=="gcc":
f.write( "<td>GNU<br>GCC<br>2.95.2<br>STLport<br>4.0 beta 8</td>\n" )
if compiler_arg=="*" or compiler_arg=="cw":
f.write( "<td>Metrowerks<br>CodeWarrior<br>5.3</td>\n" )
if compiler_arg=="*" or compiler_arg=="vc":
f.write( "<td>Microsoft<br>VC++<br>6.0 SP3</td>\n" )
if compiler_arg=="*" or compiler_arg=="vcstlport":
f.write( "<td>Microsoft<br>VC++<br>6.0 SP3<br>STLport<br>3.2.1</td>\n" )
f.write( "</tr>\n" )
if program_arg=="*":
compile( "config/config_test.cpp" )
compile( "array/array1.cpp" )
compile( "array/array2.cpp" )
compile( "array/array3.cpp" )
compile( "array/array4.cpp" )
compile( "array/array5.cpp" )
compile( "functional/function_test.cpp" )
compile( "integer/cstdint_test.cpp" )
compile( "integer/integer_test.cpp" )
compile( "integer/integer_traits_test.cpp" )
compile( "rational/rational_example.cpp" )
compile( "random/random_test.cpp" )
compile( "random/random_demo.cpp" )
compile( "smart_ptr/smart_ptr_test.cpp" )
# compile( "utility/algo_opt_examples.cpp" )
compile( "utility/call_traits_test.cpp" )
compile( "utility/cast_test.cpp" )
compile( "utility/compressed_pair_test.cpp" )
compile( "utility/iterators_test.cpp" )
compile( "utility/operators_test.cpp" )
compile( "utility/type_traits_test.cpp" )
else:
compile( program_arg )
f.write( "</table>\n</body>\n</html>\n" )
# end
Submodule
+1
Submodule libs/timer added at 4efa5380e6
+1
Submodule libs/type_traits added at eba27da72f
Submodule
+1
Submodule libs/utility added at c27d8ec8fc
+1166
View File
File diff suppressed because it is too large Load Diff
+118
View File
@@ -0,0 +1,118 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>FAQ</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="Microsoft Theme" content="none, default">
<meta name="Microsoft Border" content="none, default">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" WIDTH="277"
HEIGHT="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home </big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries </big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People </big></font></a></td>
<td><a href="faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ </big></font></a></td>
<td><a href="index.htm"><font face="Arial" color="#FFFFFF"><big>More </big></font></a></td>
</tr>
</table>
<h1>Frequently Asked Questions</h1>
<p><b>How is a library accepted for posting on the site?</b> An initial review by the
library master filters out libraries which do not meet the absolute requirements (must be
C++, ownership clear, reasonable format, etc.)&nbsp; The author is free to rework and
resubmit libraries which do not pass initial muster. This is encouraged, particularly when
reviewers like the idea behind a library but feel that details are lacking.</p>
<p><b>Is there any assurance libraries actually work as claimed?</b> No. The review
process will hopefully eliminate the most seriously flawed libraries, but a well
constructed library with hidden defects is likely to slip through. Encouraging ordinary
users to report their experience with a library is intended to address such concerns. </p>
<p><b>How does someone submit a comment?</b>&nbsp; Send email to <a
href="mailto:boost@egroups.com">boost@egroups.com</a>. </p>
<p><strong>How does someone submit a library?</strong> See <a href="lib_guide.htm">Library
Guidelines</a></p>
<p><b>Are commercial libraries requiring a fee acceptable?</b> No. However, a library that
a commercial enterprise makes available without fee is acceptable. If the description of
the library makes a low-key plug for the supplier, that is acceptable as long as the
library delivers real value and isn&#146;t just a Trojan horse for the plug.</p>
<p><b>Are shareware libraries acceptable?</b> No. At least initially, only free libraries
will be accepted.</p>
<p><strong>Are open source license libraries acceptable?</strong>&nbsp; No, not currently.
Open source licenses often require redistribution or availability of source code,
inclusion of license document with machine-executable redistribution, give the initial
developer rights to licensee modifications, and need a lawyer to understand.&nbsp; These
would be immediate disqualifications for many business, commercial, and consumer
applications. Boost aims to avoid subjecting users to hard-to-comply-with license terms.<br>
<br>
This is subject to review for a particularly important piece of software, or as the
industry changes.</p>
<p><b>Must full source code be provided?</b> Yes, these are source code libraries.</p>
<p><b>What about documentation?</b> A very simple library might be accepted with only a
well commented header file. For more substantial libraries, some form of documentation is
certainly going to be expected.&nbsp; HTML is the preferred form.</p>
<p><b>Are platform specific libraries acceptable?</b> There is a preference for portable
libraries. Libraries will be accepted that have portable interfaces but require platform
specific implementations, as long as the author supplies implementations for a couple of
disparate major operating systems.</p>
<p><b>Must a library do useful work? </b>No. A library meant as a teaching example or
demonstration might not actually do any work.</p>
<p><b>Who owns the libraries?</b> Presumably many authors will copyright their libraries.
Others authors may wish to place their libraries in the public domain. The Boost.org
policy is to only accept libraries with a clear copyright notice.&nbsp; It is up to
potential users to decide if they find the copyright terms acceptable, and to not use
libraries with unacceptable copyrights.</p>
<p><b>What support is available for the libraries?</b>&nbsp; Try the <a
href="mailto:boost@egroups.com">boost@egroups.com</a> mailing list. </p>
<p><b>Is there a relationship between Boost.org and the C++ Standards Committee?</b>
&nbsp; No. The people who started Boost.org were all on the committee, but that was just
happenstance.</p>
<p><b>Will the Boost.org libraries become part of the next C++ Standard?</b>&nbsp; Some
might, someday off in the future, but that is up to the standards committee.&nbsp; To the
extent a library becomes &quot;existing practice&quot;, the likelihood increases that
someone will propose it for future standardization. Submitting a library to Boost.org is
one way to establish existing practice - as long as enough people are interested to
download and use it!</p>
<p><b>Is the site a commercial business?</b> No. It is just some people getting together
as a kind of cyberspace civic association. If it ever needs to incorporate, it would be as
non-profit organization.</p>
<p><b>Is there any charge for submitting libraries or reviews to Boost.org?</b> No. Unlike
the standards committees, you don&#146;t have to pay to volunteer!</p>
<p><b>Will the site include material beyond libraries?</b> The main focus is on libraries,
but if people contribute occasional articles or other material to make the site more
interesting, that could be a nice fit.</p>
<p><strong>How do I unzip the distribution files on my [whatever] computer?</strong>
&nbsp; The .zip format is used for distribution because there are free decoders and
encoders available for many, many different platforms. See the <a
HREF="http://www.info-zip.org/pub/infozip/">Info-ZIP</a> web site, which includes a FAQ and
much other useful information about the .zip format. Many commercial compressor-archiver
utilities also support this format.</p>
<p>-- End of FAQ --</p>
<p>Revised May 17, 1999</p>
</body>
</html>
+103
View File
@@ -0,0 +1,103 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Feature Model Diagrams</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h1>Feature Model Diagrams in text and HTML</h1>
<p>By <a href="../people/beman_dawes.html">Beman Dawes</a></p>
<h2>Introduction</h2>
<p>In their seminal book, Generative Programming, Czarnecki and Eisenecker (<a href="#Generative Programming">C&amp;E</a>)
describe how to build feature models [C&amp;E 4.4] consisting of a feature
diagram plus semantic, rationale, and other attributes.&nbsp; Feature models are
then used to drive design cycles which eventually lead to manual or automatic
assembly of configurations.</p>
<p>Feature models provide a language to describe the library variability that is
often such an issue in boost.org discussions. The Whorf hypothesis that
&quot;Language shapes the way we think, and determines what we can think
about&quot; seems to apply.&nbsp; In discussion of library variability issues,
we have been crippled by lack of a good language. With feature models we now
have a language to carry on the dialog.</p>
<p>The graphical feature diagrams presented by C&amp;E are not in a suitable
form for the email discussions boost.org depends upon. The hierarchical nature
of feature diagrams can be represented by a simple text-based feature diagram
language.&nbsp; A feature model can also take advantage of the hyperlinks
inherent in HTML.</p>
<h2><a name="Grammar">Grammar</a></h2>
<p>The grammar for the feature diagram language is expressed in Extended
Bakus-Naur Form; ::= represents productions, [...] represents options, {...}
represents zero or more instances, and represents | alternatives.</p>
<blockquote>
<pre>feature-model ::= concept-name details { feature }</pre>
<pre>feature ::= feature-name [details]</pre>
<pre>details ::= &quot;(&quot; feature-list &quot;)&quot; // required features
| &quot;[&quot; feature-list &quot;]&quot; // optional features</pre>
<pre>feature-list ::= element { &quot;|&quot; element } // one only
| element { &quot;+&quot; element } // one or more
| element { &quot;,&quot; element } // all
// [a+b] equivalent to [a,b]</pre>
<pre>element ::= feature
| details</pre>
<pre>concept-name ::= name</pre>
<pre>feature-name ::= name</pre>
</blockquote>
<p>The usual lexical conventions apply. Names are case-insensitive and consist
of a leading letter, followed by letters, digits, underscores or hyphens, with
no spaces allowed.</p>
<p>At least one instance of each name should be hyperlinked to the corresponding
<a href="#Feature Descriptions">Feature Description</a>.</p>
<p>While the grammar is intended for written communication between people, it
may also be trivially machine parsed for use by automatic tools.</p>
<h2><a name="Feature Descriptions">Feature Description</a></h2>
<p>Descriptive information is associated with each concept or feature. According
to [C&amp;E 4.4.2] this includes:</p>
<ul>
<li>Semantic descriptions.</li>
<li>Rationale.</li>
<li>Stakeholders and client programs.</li>
<li>Exemplar systems.</li>
<li>Constraints and default dependency rules.</li>
<li>Availability sites, binding sites, and binding mode.</li>
<li>Open/Closed attribute.</li>
</ul>
<h2>What is a Feature?</h2>
<p>A feature [C&amp;E 4.9.1] is &quot;anything users or client programs might
want to control about a concept.&nbsp; Thus, during feature modeling, we
document no only functional features ... but also implementation features, ...,
various optimizations, alternative implementation techniques, and so on.&quot;</p>
<h2>Example</h2>
<blockquote>
<pre>special-container ( organization,
performance,
interface ) // all required</pre>
<pre>organization [ ordered + indexed ] // zero or more (4 configurations)</pre>
<pre>indexed [ hash-function ] // zero or one (2 configurations)</pre>
<pre>performance ( fast | small | balanced ) // exactly one (3 configurations)</pre>
<pre>interface ( STL-style + cursor-style ) // one or more (3 configurations)</pre>
</blockquote>
<p>There should be feature descriptions for <code>some-container, organization,
ordered, indexed, hash-function, performance, fast, small, balanced, interface,
STL-style, and cursor-style</code>.</p>
<p>The number of possible configurations is&nbsp; (2 + 2*2) * 3 * 3 = 54,
assuming no constraints.</p>
<p>There are equivalent representations. For example:</p>
<blockquote>
<pre>special-container ( organization[ ordered+indexed[ hash-function ]],
performance( fast|small|balanced ),
interface( STL-style+cursor-style ) )</pre>
</blockquote>
<h2>References</h2>
<p>Krzysztof Czarnecki and Ulrich W. Eisenecker, <a name="Generative Programming" href="http://www.generative-programming.org">Generative
Programming</a>, Addison-Wesley, 2000, ISBN 0-210-30977-7</p>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B %Y" startspan -->23 July 2000<!--webbot bot="Timestamp" endspan i-checksum="18762" --></p>
<p>© Copyright Beman Dawes, 2000</p>
</body>
</html>
+94
View File
@@ -0,0 +1,94 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Formal Review Process</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1>Formal Review Process</h1>
<p>The Formal Review process determines if a proposed library should be accepted
as a Boost library.</p>
<p>The final &quot;accept&quot; or &quot;reject&quot; decision is made by the
Review Manager, based on review comments received from boost mailing list
members.</p>
<p>Members only can see <a href="http://www.egroups.com/files/boost/Members+Only/formal_review_schedule.htm">Formal
Review Schedule</a> for the current review schedule.&nbsp;</p>
<h2>Comments</h2>
<p>All Boost mailing list members are encouraged to submit Formal Review
comments:</p>
<blockquote>
<ul>
<li>Publicly on the mailing list.</li>
<li>Privately to the Review Manager. (See Formal Review Status page )</li>
<li>Privately to the library submitter.</li>
</ul>
</blockquote>
<p>Private comments to a library submitter may be helpful to her or him, but
won't help the Review Manager reach a decision, so the other forms are
preferred.</p>
<h2>Preparing review comments</h2>
<p>Comments may be brief or lengthy, but basically the Review Manager needs your
answers to several questions.&nbsp; If you identify problems along the way,
please note if they are minor, serious, or showstoppers.</p>
<ul>
<li>What is your evaluation of the design?<br>
</li>
<li>What is your evaluation of the implementation?<br>
</li>
<li>What is your evaluation of the documentation?<br>
</li>
<li>What is your evaluation of the potential usefulness of the library?<br>
</li>
<li>Did you try to use the library?&nbsp; With what compiler?&nbsp; Did you
have any problems?<br>
</li>
<li>How much effort did you put into your evaluation? A glance? A quick
reading? In-depth study?<br>
</li>
<li>Are you knowledgeable about the problem domain?<br>
</li>
<li>Finally, do you think the library should be accepted as a Boost
library?&nbsp; Be sure to say this explicitly so that your other comments
don't obscure your overall opinion.</li>
</ul>
<h2>Results</h2>
<p>At the conclusion of the comment period, the Review Manager will post a
message to the mailing list saying if the library has been accepted or
rejected.&nbsp; A rationale should be provided, but its extent is up to the
Review Manager.</p>
<h2>Notes for Review Managers</h2>
<p>Consider writing a Review page for posting on the web site.</p>
<p>In Review pages or mailing list postings, do quote review comments if you
wish, but don't identify authors of private comments.</p>
<h2>Notes for Library Authors</h2>
<p>A proposed library should remain stable during the review period; it is just
going to confuse and irritate reviewers if there are numerous changes.&nbsp; It
is, however, useful to upload fixes for serious bugs right away, particularly
those which prevent reviewers from fully evaluating the library.&nbsp; Post a
notice of such fixes on the mailing list.</p>
<p>Library improvements suggested by reviewers should be held until after the
completion of review period. Such changes can then be incorporated in the <a href="submission_process.htm#Final">final
submission file</a> sent to the webmaster for posting.&nbsp; If the suggested
changes might affect reviewer's judgments,&nbsp; post a notice of the pending
change on the mailing list.</p>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->13 June, 2000<!--webbot bot="Timestamp" endspan i-checksum="19835" --></p>
<p>&nbsp;</p>
</body>
</html>
+102
View File
@@ -0,0 +1,102 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Header policy</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta name="Microsoft Border" content="none, default">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1>Header Policy</h1>
<p>Header files are the place where a library comes into contact with user code
and other libraries.&nbsp; To co-exist peacefully and productively, headers must
be &quot;good neighbors&quot;.</p>
<p>Here are the standards for namespace boost headers.&nbsp;&nbsp;&nbsp; Many of
these are also reasonable guidelines for general use.
<ul>
<li>Headers should have a .hpp (lowercase) filename extension.&nbsp;</li>
<li>Identify the file with an initial comment line.&nbsp; The sample header
identifies both the name of the header and the library it is a part of.</li>
<li>Specify copyright ownership and any restrictions on use.&nbsp; If you
don't want to retain ownership, say something like &quot;Written by Jane
Programmer and placed in the public domain&quot;.</li>
<li>Supply version information, possibly generated automatically by your
version control system.</li>
<li>Macro names should be all uppercase, and begin with the namespace
name.&nbsp; Underscores separate words.</li>
<li>Wrap the header in #ifndef guards so that multiple inclusion is
benign.&nbsp; Use a naming convention that minimizes the chance of clashes
with macro names from other's code.&nbsp; The <a href="#Sample header">sample
header</a> uses the Boost convention of all uppercase letters, with the
header name prefixed by the namespace name, and suffixed with HPP, separated
by underscores.</li>
<li>Wrap the header contents in a namespace to prevent global namespace
pollution. The namespace approach to pollution control is strongly preferred
to older approaches such as adding funny prefixes to global names.&nbsp;
Libraries which are designed to work well with other Boost libraries should
be placed namespace <tt>boost</tt>.</li>
<li>Place the header file in a sub-directory to prevent conflict with
identically named header files in other libraries.&nbsp; The parent
directory is added to the compiler's include search path.&nbsp; Then both
your code and user code specifies the sub-directory in <tt>#include</tt>
directives.&nbsp; Thus the header <a href="#Sample header">sample header</a>&nbsp;
would be included by <tt>#include &lt;boost/furball.hpp&gt;</tt></li>
<li>The preferred ordering for class definitions is public members, protected
members, and finally private members.</li>
<li>Include the boost/config.hpp <a href="../libs/config/index.htm">configuration
header</a> if there is a need to deal with compiler or platform
configuration issues.</li>
</ul>
<h2><a name="Sample header"></a>Sample Header</h2>
<pre><tt>//&nbsp; Boost general library furball.hpp header file&nbsp; ---------------------------//
//&nbsp; (C) Copyright Your Name 1998. Permission to copy, use, modify, sell and
//&nbsp; distribute this software is granted provided this copyright notice appears
//&nbsp; in all copies. This software is provided &quot;as is&quot; without express or implied
//&nbsp; warranty, and with no claim as to its suitability for any purpose.
//&nbsp; $Id$ or other version information
#ifndef BOOST_FURBALL_HPP
#define BOOST_FURBALL_HPP
namespace boost {
//&nbsp; Furball class declaration&nbsp; -----------------------------------------------//
&nbsp; class furball
{
public:
&nbsp; void throw_up();
private:
int whatever;
&nbsp;&nbsp;};&nbsp; // furball
} // namespace
#endif&nbsp; // BOOST_FURBALL_HPP</tt></pre>
<h2>Coding Style</h2>
<p>The alert reader will have noticed that the <a href="#Sample header">sample
header</a> employs a certain coding style for indentation, positioning braces,
commenting ending braces, and similar formatting issues.&nbsp; These stylistic
issues are viewed as personal preferences and are not part of the Boost Header
Policy.</p>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->27 July, 2000<!--webbot bot="Timestamp" endspan i-checksum="21060" --></p>
</body>
</html>
+201
View File
@@ -0,0 +1,201 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Implementation Variations</title>
</head>
<body link="#0000ff" vlink="#800080" bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1>Implementation Variations</h1>
<h2>Separation of interface and implementation</h2>
<p>The interface specifications for boost.org library components (as well as for
quality software in general) are conceptually separate from implementations of
those interfaces. This may not be obvious, particularly when a component is
implemented entirely within a header, but this separation of interface and
implementation is always assumed. From the perspective of those concerned with
software design, portability, and standardization, the interface is what is
important, while the implementation is just a detail.</p>
<p>Dietmar Kühl, one of the original boost.org contributors, comments &quot;The
main contribution is the interface, which is augmented with an implementation,
proving that it is possible to implement the corresponding class and providing a
free implementation.&quot;</p>
<b>
<h2>Implementation variations</h2>
</b>
<p>There may be a need for multiple implementations of an interface, to
accommodate either platform dependencies or performance tradeoffs. Examples of
platform dependencies include compiler shortcomings, file systems, thread
mechanisms, and graphical user interfaces. The classic example of a performance
tradeoff is a fast implementation which uses a lot of memory versus a slower
implementation which uses less memory.</p>
<p>Boost libraries generally use a <a href="../libs/config/index.htm">configuration
header</a>, boost/config.hpp, to capture compiler and platform
dependencies.&nbsp; Although the use of boost/config.hpp is not required, it is
the preferred approach for simple configuration problems.&nbsp;&nbsp;</p>
<h2>Boost policy</h2>
<p>The Boost policy is to avoid platform dependent variations in interface
specifications, but supply implementations which are usable over a wide range of
platforms and applications.&nbsp; That means boost libraries will use the
techniques below described as appropriate for dealing with platform
dependencies.</p>
<p>The Boost policy toward implementation variations designed to enhance
performance is to avoid them unless the benefits greatly exceed the full
costs.&nbsp; The term &quot;full costs&quot; is intended to include both
tangible costs like extra maintenance, and intangible cost like increased
difficulty in user understanding.</p>
<b>
<h2>Techniques for providing implementation variations</h2>
</b>
<p>Several techniques may be used to provide implementation variations. Each is
appropriate in some situations, and not appropriate in other situations.</p>
<h3>Single general purpose implementation</h3>
<p>The first technique is to simply not provide implementation variation at
all.&nbsp; Instead, provide a single general purpose implementation, and forgo
the increased complexity implied by all other techniques.</p>
<p><b>Appropriate:</b>&nbsp; When it is possible to write a single portable
implementation which has reasonable performance across a wide range of
platforms. Particularly appropriate when alternative implementations differ only
in esoteric ways.</p>
<p><b>Not appropriate:</b> When implementation requires platform specific
features, or when there are multiple implementation possible with widely
differing performance characteristics.</p>
<p>Beman Dawes comments &quot;In design discussions some implementation is often
alleged to be much faster than another, yet&nbsp; a timing test discovers no
significant difference. The lesson is that while algorithmic differences may
affect speed dramatically, coding differences such as changing a class from
virtual to non-virtual members or removing a level of indirection are unlikely
to make any measurable difference unless deep in an inner loop. And even in an
inner loop, modern CPU’s often execute such competing code sequences in the
same number of clock cycles!&nbsp; A single general purpose implementation is
often just fine.&quot;</p>
<p>Or as Donald Knuth said, &quot;Premature optimization is the root of all
evil.&quot; (Computing Surveys, vol 6, #4, p 268).</p>
<h3>Macros</h3>
<p>While the evils of macros are well known, there remain a few cases where
macros are the preferred solution:</p>
<blockquote>
<ul>
<li>&nbsp;Preventing multiple inclusion of headers via #include guards.</li>
<li>&nbsp;Passing minor configuration information from a configuration
header to other files.</li>
</ul>
</blockquote>
<p><b>Appropriate:</b>&nbsp; For small compile-time variations which would
otherwise be costly or confusing to install, use, or maintain. More appropriate
to communicate within and between library components than to communicate with
library users.</p>
<p><b>Not appropriate:&nbsp;</b> If other techniques will do.</p>
<p>To minimize the negative aspects of macros:</p>
<blockquote>
<ul>
<li>Only use macros when they are clearly superior to other
techniques.&nbsp; They should be viewed as a last resort.</li>
<li>Names should be all uppercase, and begin with the namespace name. This
will minimize the chance of name collisions. For example, the #include
guard for a boost header called foobar.h might be named BOOST_FOOBAR_H.</li>
</ul>
</blockquote>
<h3>Separate files</h3>
<p>A library component can have multiple variations, each contained in its own
separate file or files.&nbsp; The files for the most appropriate variation are
copied to the appropriate include or implementation directories at installation
time.</p>
<p>The way to provide this approach in boost libraries is to include specialized
implementations as separate files in separate sub-directories in the .ZIP
distribution file. For example, the structure within the .ZIP distribution file
for a library named foobar which has both default and specialized variations
might look something like:</p>
<blockquote>
<pre>foobar.h // The default header file
foobar.cpp // The default implementation file
readme.txt // Readme explains when to use which files
self_contained/foobar.h // A variation with everything in the header
linux/foobar.cpp // Implementation file to replace the default
win32/foobar.h // Header file to replace the default
win32/foobar.cpp // Implementation file to replace the default</pre>
</blockquote>
<p><b>Appropriate:</b>&nbsp; When different platforms require different
implementations, or when there are major performance differences between
possible implementations.&nbsp;</p>
<p><b>Not appropriate:</b>&nbsp; When it makes sense to use more that one of the
variations in the same installation.</p>
<h3>Separate components</h3>
<p>Rather than have several implementation variations of a single component,
supply several separate components. For example, the Boost library currently
supplies <code>scoped_ptr</code> and <code>shared_ptr</code> classes rather than
a single <code>smart_ptr</code> class parameterized to distinguish between the
two cases.&nbsp; There are several ways to make the component choice:</p>
<blockquote>
<ul>
<li>Hardwired by the programmer during coding.</li>
<li>Chosen by programmer written runtime logic (trading off some extra
space, time, and program complexity for the ability to select the
implementation at run-time.)</li>
</ul>
</blockquote>
<p><b>Appropriate: </b>When the interfaces for the variations diverge, and when
it is reasonably to use more than one of the variations. When run-time selection
of implementation is called for.</p>
<p><b>Not appropriate:</b> When the variations are data type, traits, or
specialization variations which can be better handled by making the component a
template. Also not appropriate when choice of variation is best done by some
setup or installation mechanism outside of the program itself.&nbsp; Thus
usually not appropriate to cope with platform differences.</p>
<p><b>Note:</b> There is a related technique where the interface is specified as
an abstract (pure virtual) base class (or an interface definition language), and
the implementation choice is passed off to some third-party, such as a
dynamic-link library or object-request broker. While that is a powerful
technique, it is way beyond the scope of this discussion.</p>
<h3>Template-based approaches</h3>
<p>Turning a class or function into a template is often an elegant way to cope
with variations.&nbsp; Template-based approaches provide optimal space and time
efficiency in return for constraining the implementation selection to compile
time.&nbsp;</p>
<p>Important template techniques include:</p>
<blockquote>
<ul>
<li>Data type parameterization.&nbsp; This allows a single component to
operate on a variety of data types, and is why templates were originally
invented.</li>
<li>Traits parameterization.&nbsp; If parameterization is complex, bundling
up aspects into a single traits helper class can allow great variation
while hiding messy details.&nbsp; The C++ Standard Library provides
several examples of this idiom, such as <code>iterator_traits&lt;&gt;</code>
(24.3.1 lib.iterator.traits) and <tt>char_traits&lt;&gt;</tt> (21.2
lib.char.traits).</li>
<li>Specialization.&nbsp; A template parameter can be used purely for the
purpose of selecting a specialization. For example:</li>
</ul>
<blockquote>
<blockquote>
<pre>SomeClass&lt;fast&gt; my_fast_object; // fast and small are empty classes
SomeClass&lt;small&gt; my_small_object; // used just to select specialization</pre>
</blockquote>
</blockquote>
</blockquote>
<p><b>Appropriate: </b>When the need for variation is due to data type or
traits, or is performance related like selecting among several algorithms, and
when a program might reasonably use more than one of the variations.</p>
<p><b>Not appropriate:</b>&nbsp; When the interfaces for variations are
different, or when choice of variation is best done by some mechanism outside of
the program itself.&nbsp; Thus usually not appropriate to cope with platform
differences.</p>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->23 June, 2000<!--webbot bot="Timestamp" endspan i-checksum="19836" --></p>
</body>
</html>
+62
View File
@@ -0,0 +1,62 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>More Information</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1>More Information</h1>
<h2>Boost Policies</h2>
<p>These policies explain what is expected of boost libraries and the process
for library submissions.</p>
<blockquote>
<p><b><a href="lib_guide.htm">Library Requirements and Guidelines</a></b>.&nbsp;
Basic standards for those preparing a submission.</p>
<p><a href="submission_process.htm"><b>Library Submission Process</b></a>.&nbsp;
How to submit a library to Boost.</p>
<p><b><a href="formal_review_process.htm">Library Formal Review Process</a></b>.
Including how to submit a review comment.</p>
<p><b><a href="header.htm">Header Policy</a></b>.&nbsp; Headers are where a
library contacts its users, so programming practices are particularly
important.</p>
<p><b><a href="imp_vars.htm">Implementation Variations</a></b>.&nbsp;
Sometimes one size fits all, sometimes it doesn't.&nbsp; This page deals with
the trade-offs.</p>
</blockquote>
<h2>Links</h2>
<blockquote>
<p>The C++ Standard (ISO/IEC 14882) is available online as a PDF file from the
<a href="http://www.ansi.org">ANSI</a> (American National Standards Institute)
Electronic Standards Store.&nbsp; The price is $US 18.00. The document is
certainly not a tutorial, but is interesting to those who care about the
precise specification of the language and the standard library.</p>
</blockquote>
<h2>Articles and Papers</h2>
<blockquote>
<p><b><a href="count_bdy.htm">Counted Body Techniques</a></b> by <a href="../people/kevlin_henney.htm">Kevlin
Henney</a> is must reading for those interested in reference counting, a
widely used object management idiom.&nbsp; Originally published in <a href="http://www.accu.org/c++sig/public/Overload.html">Overload</a>
magazine.</p>
<p><b><a href="feature_model_diagrams.htm">Feature Model Diagrams in text and
HTML</a></b> describes how to represent feature model diagrams in text form.</p>
</blockquote>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->16 July, 2000<!--webbot bot="Timestamp" endspan i-checksum="21057" --></p>
</body>
</html>
+268
View File
@@ -0,0 +1,268 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Library Requirements and Guidelines</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta name="Microsoft Border" content="none, default">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1 align="left">Boost Library Requirements and Guidelines</h1>
<p align="left">This page describes requirements and guidelines for the content
of a library submitted to Boost.</p>
<p align="left">See the <a href="submission_process.htm">Boost Library
Submission Process</a> page for a description of the process involved.</p>
<h2 align="left">Requirements</h2>
<p>To avoid the frustration and wasted time of a proposed library being
rejected, it must meets these requirements:</p>
<ul>
<li>The license must meet the <a href="#License">license requirements</a>
below. Restricted licenses like the GPL and LGPL are not acceptable. The
copyright <a href="#Ownership">ownership</a> must be clear.<br>
</li>
<li>The library must be generally useful and not restricted to a narrow
problem domain.<br>
</li>
<li>The library must meet the <a href="#Portability">portability requirements</a>
below.&nbsp;<br>
</li>
<li>The library must come reasonably close to meeting the <a href="#Guidelines">Guidelines</a>
below.<br>
</li>
<li>The author must be willing to participate in discussions on the mailing
list, and to refine the library accordingly.</li>
</ul>
<p>There's no requirement that an author read the mailing list for a time before
making a submission. It has been noted, however, that submissions which begin
&quot;I just started to read this mailing list ...&quot; seem to fail, often
embarrassingly.</p>
<h3 align="left"><a name="License">License</a> requirements</h3>
<ul>
<li>Must be simple to read and understand.<br>
</li>
<li>Must grant permission to copy, use and modify the software for any use
(commercial and non-commercial) for no fee.<br>
</li>
<li>Must require that the license appear on all copies of the software source
code.<br>
</li>
<li>Must not require that the license appear with executables or other binary
uses of the library.&nbsp;&nbsp; Must not require that the source code be
available for execution or other binary uses of the library.<br>
</li>
<li>May restrict the use of the name and description of the library to the
standard version found on the Boost web site.</li>
</ul>
<h3 align="left"><a name="Portability">Portability</a> requirements</h3>
<ul>
<li>
<p align="left">A library's interface must portable and not restricted to a
particular compiler or operating system.<br>
</li>
<li>
<p align="left">A library's implementation must if possible be portable and
not restricted to a particular compiler or operating system.&nbsp; If a
portable implementation is not possible, non-portable constructions are
acceptable if reasonably easy to port to other environments.<br>
</li>
<li>
<p align="left">There is no requirement that a library run on all C++
compilers.&nbsp;&nbsp;<br>
</li>
<li>
<p align="left">There is no requirement that a library run on any particular
C++ compiler.&nbsp; Boost contributors often try to ensure their libraries
work with popular compilers.&nbsp; The boost/config.hpp <a href="../libs/config/index.htm">configuration
header</a> is the preferred mechanism for working around compiler
deficiencies.</li>
</ul>
<p align="left">Since there is no absolute way to prove portability, many boost
submissions demonstrate practical portability by compiling and executing
correctly with two different C++ compilers, often under different operating
systems.&nbsp; Otherwise reviewers may disbelieve that porting is in fact
practical.</p>
<h3 align="left"><a name="Ownership">Ownership</a></h3>
<p align="left">Are you sure you own the library you are thinking of
submitting?&nbsp;&nbsp; &quot;How to Copyright Software&quot; by MJ Salone, Nolo
Press, 1990 says:</p>
<blockquote>
<p align="left">Doing work on your own time that is very similar to
programming you do for your employer on company time can raise nasty legal
problems.&nbsp; In this situation, it's best to get a written release from
your employer in advance.</p>
</blockquote>
<p align="left">Place a copyright notice in all the important files you submit.
Boost.org won't accept libraries without clear copyright information.</p>
<h2 align="left"><a name="Guidelines">Guidelines</a></h2>
<p align="left">Please use these guidelines as a checklist for preparing the
content a library submission.&nbsp; Not every guideline applies to every
library, but a reasonable effort to comply is expected.</p>
<h3>Design and Programming</h3>
<ul>
<li>Aim for ISO Standard C++. Than means making effective use of the standard
features of the language, and avoiding non-standard compiler extensions. It
also means using the C++ Standard Library where applicable.</li>
</ul>
<ul>
<li>Headers should be good neighbors. See the <a href="header.htm">header
policy</a>.</li>
</ul>
<ul>
<li>Follow the <a href="imp_vars.htm">implementation variation policy</a>.&nbsp;</li>
</ul>
<ul>
<li>Follow quality programming practices. See, for example, &quot;Effective
C++&quot; 2nd Edition, and &quot;More Effective C++&quot;, both by Scott
Meyers, published by Addison Wesley.</li>
</ul>
<ul>
<li>Use the lowercase/underscore <a href="#Naming">naming conventions</a> of
the C++ standard library.&nbsp; Template parameter names begin with an
uppercase letter. Macro (gasp!) names should be all uppercase and begin with
BOOST_.</li>
</ul>
<ul>
<li>Use exceptions to report errors where appropriate, and write code that is
safe in the face of exceptions.</li>
</ul>
<ul>
<li>Avoid exception-specifications. See <a href="#Exception-specification">exception-specification
rationale</a>.</li>
</ul>
<ul>
<li>Provide sample programs, confidence tests, or regression tests so
potential users can see how to use your library and verify that it has
compiled correctly.</li>
</ul>
<ul>
<li>Although some boost members use proportional fonts, tabs, and unrestricted
line lengths in their own code, boost's widely distributed source code
should follow more conservative guidelines:
<ul>
<li>Use fixed-width fonts.&nbsp; See <a href="#code fonts">fonts rationale</a>.</li>
<li>Use spaces rather than tabs.</li>
<li>Limit line lengths to 80 characters.</li>
</ul>
</li>
</ul>
<h3>Documentation</h3>
<p>Even the simplest library needs some documentation; the amount should be
proportional to the need.&nbsp; The documentation should assume the readers have
a basic knowledge of C++, but are not necessarily experts.</p>
<p>The format for documentation should be HTML, and should not require an
advanced browser or server-side extensions.</p>
<p>There is no single right way to do documentation. HTML documentation is often
organized quite differently from traditional printed documents. Task-oriented
styles differ from reference oriented styles. In the end, it comes down to the
question: Is the documentation sufficient for the mythical &quot;average&quot;
C++ programmer to use the library successfully?</p>
<p>Appropriate topics for documentation often include:
<ul>
<li>General introduction to the library.</li>
<li>Description of each class.</li>
<li>Relationship between classes.</li>
<li>For each function, as applicable, description, requirements
(preconditions), effects, post-conditions, returns, and throws.</li>
<li>Discussion of error detection and recovery strategy.</li>
<li>How to use including description of typical uses.</li>
<li>How to compile and link.</li>
<li>How to test.</li>
<li>Version or revision history.</li>
<li>Rationale for design decisions.&nbsp; See <a href="#Rationale">Rationale
rationale</a>.</li>
<li>Acknowledgements.&nbsp; See <a href="#Acknowledgements">Acknowledgments
rationale.</a></li>
</ul>
<h2>Rationale</h2>
<p>Rationale for some of the requirements and guidelines follows.</p>
<h3><a name="Exception-specification">Exception-specification</a> rationale</h3>
<p>Exception specifications [ISO 15.4] are sometimes coded to indicate what
exceptions may be thrown, or because the programmer hopes they will improved
performance.&nbsp; But consider the follow member from a smart pointer:</p>
<pre> T&amp; operator*() const throw() { return *ptr; }</pre>
<p>This function calls no other functions; it only manipulates fundamental data
types like pointers Therefore, no runtime behavior of the
exception-specification can ever be invoked.&nbsp; The function is completely
exposed to the compiler; indeed it is declared inline Therefore, a smart
compiler can easily deduce that the functions are incapable of throwing
exceptions, and make the same optimizations it would have made based on the
empty exception-specification. A &quot;dumb&quot; compiler, however, may make
all kinds of pessimizations.</p>
<p>For example, some compilers turn off inlining if there is an
exception-specification.&nbsp; Some compilers add try/catch blocks. Such
pessimizations can be a performance disaster which makes the code unusable in
practical applications.</p>
<p>Although initially appealing, an exception-specification tends to have
consequences that require <b>very</b> careful thought to understand. The biggest
problem with exception-specifications is that programmers use them as though
they have the effect the programmer would like, instead of the effect they
actually have.</p>
<p>A non-inline function is the one place a &quot;throws nothing&quot;
exception-specification may have some benefit with some compilers.</p>
<hr>
<h3><a name="Naming">Naming</a> conventions rationale</h3>
<p>The C++ standard committee's Library Working Group discussed this issue in
detail, and over a long period of time. The discussion was repeated again in
early boost postings. A short summary:</p>
<ul>
<li>Naming conventions are contentious, and although several are widely used,
no one style predominates.<br>
</li>
<li>Given the intent to propose portions of boost for the next revision of the
C++ standard library, boost decided to follow the standard library's
conventions.<br>
</li>
<li>Once a library settles on a particular convention, a vast majority of
stakeholders want that style to be consistently used.<br>
</li>
<li>There is a strong preference for clear and descriptive names, even if
lengthy.</li>
</ul>
<hr>
<h3>Source <a name="code fonts">code fonts</a> rationale</h3>
<p>Dave Abrahams comments: An important purpose (I daresay the primary purpose)
of source code is communication: the documentation of intent. This is a doubly
important goal for boost, I think. Using a fixed-width font allows us to
communicate with more people, in more ways (diagrams are possible) right there
in the source. Code written for fixed-width fonts using spaces will read
reasonably well when viewed with a variable-width font, and as far as I can tell
every editor supporting variable-width fonts also supports fixed width. I don't
think the converse is true.</p>
<hr>
<h3><a name="Rationale">Rationale</a> rationale</h3>
<p>Rationale is defined as &quot;The fundamental reasons for something;
basis.&quot; by the American Heritage Dictionary.</p>
<p>Beman Dawes comments:&nbsp; Failure to supply contemporaneous rationale for
design decisions is a major defect in many software projects. Lack of accurate
rationale causes issues to revisited endlessly, causes maintenance bugs when a
maintainer changes something without realizing it was done a certain way for
some purpose, and shortens the useful lifetime of software.</p>
<p>Rationale is fairly easy to provide at the time decisions are made, but very
hard to accurately recover even a short time later.</p>
<hr>
<h3><a name="Acknowledgements">Acknowledgements</a> rationale</h3>
<p>As a library matures, it almost always accumulates improvements suggested to
the authors by other boost members.&nbsp; It is a part of the culture of
boost.org to acknowledge such contributions, identifying the person making the
suggestion.&nbsp; Major contributions are usually acknowledged in the
documentation, while minor fixes are often mentioned in comments within the code
itself.</p>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->24 July, 2000<!--webbot bot="Timestamp" endspan i-checksum="21054" --></p>
</body>
</html>
+169
View File
@@ -0,0 +1,169 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Library Submission Process</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1>Boost Library Submission Process</h1>
<p>This page describes the process of getting a library accepted by Boost.&nbsp;
The process is still evolving, so if you have suggestions for improvement by all
means post them on the mailing list.</p>
<p>See the <a href="lib_guide.htm">Boost Library Requirements and Guidelines</a>
page for issues of content.</p>
<h3><b>Steps for getting a library accepted by Boost:</b></h3>
<ul>
<li><a href="#Learn">Learn about Boost</a>.</li>
<li><a href="#interest">Determine interest</a>.</li>
<li><a href="#Preliminary">Preliminary submission</a>.</li>
<li><a href="#Refinement">Refinement</a>.</li>
<li><a href="#Review">Formal Review</a>.</li>
<li><a href="#site posting">Web site posting</a>.</li>
<li><a href="#Lifecycle">Lifecycle</a>.</li>
</ul>
<h2><a name="Learn">Learn</a> about Boost</h2>
<p>Subscribe to the <a href="../index.htm#Mailing List">mailing list</a> for a
while, or look through the <a href="http://www.egroups.com/messages/boost">archives</a>.&nbsp;
Click around the <a href="../index.htm">web site</a>.&nbsp; Understand the <a href="lib_guide.htm">Requirements</a>.&nbsp;
Read the rest of this page to learn about the process.&nbsp; Otherwise, you will
just end up wasting everyone's time.</p>
<p>There is a culture associated with Boost, aimed at encouraging high quality
libraries by a process of discussion and refinement.</p>
<p>If what you really want is a site that will just post your library without
even looking at it, you should go elsewhere.</p>
<h2>Determine <a name="interest">interest</a></h2>
<p>Potential library submitters should use the <a href="../index.htm#Mailing List">mailing
list</a> as a forum to gauge interest a possible submission.</p>
<p>A message might be as simple as &quot;Is there any interest in a library
which solves Traveling Salesperson problems in linear time?&quot;</p>
<p>A bit of further description or snippet of code may be helpful. Messages
should be plain text; not rich text, HTML, etc.</p>
<p>Please don't post lengthy descriptions, documentation, or code to the mailing
list, and no attachments, even small ones.&nbsp; Please post lengthy material in
the eGroups boost <a href="http://www.egroups.com/files/boost/">Files section</a>
(formerly called the &quot; vault&quot;).&nbsp;</p>
<h2><a name="Preliminary">Preliminary</a> submission</h2>
<p>If response to an initial query indicates interest, then post preliminary
files in the <a href="http://www.egroups.com/files/boost/">Files section</a> of
the boost eGroups web site if you haven't already done so.</p>
<h2><a name="Refinement">Refinement</a></h2>
<p>Discuss, refine, resubmit.&nbsp; Repeat until satisfied.</p>
<p>The exact details of this process varies a lot.&nbsp; Sometimes it is public,
on the mailing list, sometimes a lot of discussion happens in private
emails.&nbsp; For some libraries the process is over quickly, for others it goes
on for months.&nbsp; It's often challenging, and sometimes leads off in
completely unexpected directions.&nbsp;&nbsp;</p>
<p>The <a href="http://www.egroups.com/messages/boost">archive</a> of past
messages is one way to see how this process worked for other boost
libraries.&nbsp;</p>
<h2>Formal <a name="Review">Review</a></h2>
<p><i>[The Formal Review procedure is new as of 9 May, 2000, and will be refined
as experience dictates.]</i></p>
<p>Once a library author feels a submission (which presumably is now in the
files/vault) has matured enough for formal review, the author sends a message
requesting a formal review to the mailing list.&nbsp; Please use a subject in
the form &quot;Review Request: library&quot; where <i>library</i> is replaced by
the library name.</p>
<p>Reviews are scheduled so that:</p>
<ul>
<li>Each library gets review time proportional to its size, complexity, and
importance.</li>
<li>Only a small number of libraries are under active review at any one time.</li>
<li>Members know ahead of time when a particular library will be under active
review.&nbsp;</li>
</ul>
<p>Before a library can be scheduled for review, an active boost member not
connected with the library submission must volunteer to be the &quot;Review
Manager&quot; for that library. The review manager decides on the schedule,
posts a notice when the review period starts, how long it lasts, and how boost
members can contribute their comments. The review manager collects comments,
chairs any discussions, and then when the review period is over, decides if
there is enough consensus to accept the library.</p>
<p>See <a href="formal_review_process.htm">Formal Review Process</a> for
details.</p>
<p>Members only can see <a href="http://www.egroups.com/files/boost/Members+Only/formal_review_schedule.htm">Formal
Review Schedule</a> for the current library review schedule.&nbsp;</p>
<p><i>[The plan is that the first several reviews will be managed by long-time
boost contributors who will be encouraged to experiment with the review
process.&nbsp;&nbsp; Presumably, successful processes will evolve over time and
can then be documented.]</i></p>
<h2>Boost <a name="site posting">site posting</a></h2>
<h3>Packaging</h3>
<p>All of the files which make up the library should be combined and compressed
into a single final submission file using the .zip format.&nbsp; Free encoders
and decoders for this format running on many different platforms are available
at the <a href="http://www.info-zip.org/pub/infozip/">Info-ZIP</a> web site, which
includes a FAQ and much other useful information about the .zip format. Many
commercial compressor-archiver utilities also support this format.</p>
<h3><a name="Final">Final</a> Submission file</h3>
<p>The final submission file contains the material that will live on the
boost.org web site.&nbsp; The closer the submission file mirrors the directory
structure and format of the web site, the easier it is for the webmaster to
integrate it into the web site.
<p>The submission file for a library named <b>foo</b> should include these
subdirectories, with the contents indicated:
<blockquote>
<p><b>libs/foo</b>
<ul>
<li>An introductory page named index.html or index.htm which looks like the
initial page of other libraries. <a href="../libs/rational/index.html">Rational</a>&nbsp;
is a model for single part libraries, <a href="../libs/integer/index.htm">Integer</a>
or <a href="../libs/utility/index.htm">Utility</a> are models for
multi-part libraries.</li>
<li>The documentation page or pages, also in HTML format.</li>
<li>Source files implementing the library if it isn't entirely header
based.&nbsp; The boost file type convention for source files is <b>.cpp</b>.</li>
<li>Test programs and data files if supplied.</li>
<li>If the library has a large number of subsidiary files which aren't
linked to from the documentation pages, these subsidiary files can be
combined into a single .zip file.</li>
</ul>
<p><b>boost</b></p>
<ul>
<li>Public header files as described in the documentation for the
library.&nbsp; The boost file type convention for header files is <b>.hpp</b>.</li>
</ul>
<p><b>boost/detail</b></p>
<ul>
<li>Implementation header files not normally accessed by library users.</li>
</ul>
</blockquote>
<h3>Transmission</h3>
<p>Submit via email to <a href="mailto:webmaster@boost.org">webmaster@boost.org</a>.&nbsp;&nbsp;
Attach the .zip submission file.&nbsp; In the email message, please include your
email address, postal mail address, and telephone number, if boost.org doesn't
already have them. Your addresses and phone number will not appear on the web
site (unless you include them in your biography).&nbsp; Anonymous postings are
not accepted.</p>
<h3>People pages</h3>
<p>If the boost.org web site doesn't already have your capsule biography
and&nbsp; picture (optional, with not-too-serious pictures preferred), please
send them <a href="../index.htm#webmaster">mailto:webmaster@boost.org</a>. It is
up to you as to whether or not the biography includes your email address or
other contact information.&nbsp; The preferred picture format is .jpg, but other
common formats are acceptable.&nbsp; The preferred image size is 500x375 but the
webmaster has photo editing software and can do the image preparation if
necessary.</p>
<h2><a name="Lifecycle">Lifecycle</a></h2>
<p>Libraries are software; they loose their value over time if not
maintained.&nbsp; Details still hazy.</p>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->19 June, 2000<!--webbot bot="Timestamp" endspan i-checksum="19847" --></p>
</body>
</html>
+52
View File
@@ -0,0 +1,52 @@
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Use other Boost or C</title>
</head>
<body>
<ul>
<li>Use other Boost or C++ Standard Library components only when the benefits
outweigh the costs.</li>
</ul>
<p>(Details)</p>
<p>The benefits of using components from other libraries include clearer, more
understandable, code, reduced development and maintenance costs, and the
assurance which comes from using well-known and trusted building blocks.</p>
<p>The costs incurred may include added compilation and runtime costs, and
undesirable coupling between components.&nbsp; If the interface to the
additional component is complex, using it may make code less readable, and thus
actually increase development and maintenance costs.</p>
<p><b>Example where another boost component should be used:</b>&nbsp;
boost::noncopyable (in boost/utility.hpp) has considerable benefits; it
simplifies code, improves readability, and signals intent.&nbsp; Costs are low
as coupling is limited;&nbsp; it uses no other classes and includes only the
generally lightweight headers &lt;boost/config.hpp&gt; and &lt;cstddef&gt;.&nbsp;&nbsp;
There are no runtime costs at all. With costs so low and benefits so high, other
boost libraries should use boost::noncopyable except in exceptional
circumstances.</p>
<p><b>Example where a standard library component might be used:</b> Providing
diagnostic output as a debugging aid can be a nice feature for a library. Yet
using Standard Library iostreams for the purpose involves a lot of additional
coupling, if iostreams is otherwise unused, and may be a complete waste if the
library is used in a GUI or embedded application.&nbsp; It might be better to
redesign the boost library so that the user supplies the output mechanism,
avoiding marginal use of iostreams.</p>
<p><b>Example where another boost component should not be used:</b>&nbsp; The
boost dir_it library has considerable coupling and runtime costs, not to mention
portability issues with unsupported operating systems.&nbsp; While completely
appropriate when directory iteration is required, it would not be reasonable for
another boost library to use dir_it just to check that a file is available
before opening, since Standard Library file open functionality does this at
lower cost.&nbsp; Don't use dir_it just for the sake of using a boost library.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</body>
</html>
+103
View File
@@ -0,0 +1,103 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>People</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta name="Microsoft Border" content="none, default">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1>Boost People</h1>
<p>(Click on the names for biographies)<br>
(Click on the images for enlarged images)</p>
<table border="0" cellpadding="4" cellspacing="4">
<tr>
<td><a href="people/dave_abrahams.htm">Dave Abrahams</a></td>
<td><a href="people/dave_abrahams.jpg"><img border="0" src="people/dave_abrahams_small.jpg" alt="dave_abrahams.jpg (30926 bytes)" width="100" height="75"></a></td>
</tr>
<tr>
<td><a href="people/darin_adler.htm">Darin Adler</a></td>
<td><a href="people/darin_adler.jpg"><img border="0" src="people/darin_adler_small.jpg" alt="darin_adler.jpg (30416 bytes)" width="100" height="133"></a></td>
</tr>
<tr>
<td><a href="people/valentin_bonnard.htm">Valentin Bonnard</a></td>
<td><a href="people/valentin_bonnard.jpg"><img src="people/valentin_bonnard_small.jpg" alt="valentin_bonnard.jpg (18207 bytes)" border="0" width="100" height="142"></a></td>
</tr>
<tr>
<td><a href="people/ed_brey.htm">Ed Brey</a></td>
<td><a href="people/ed_brey.jpg"><img border="0" src="people/ed_brey_small.jpg" alt="ed_brey.jpg (13913 bytes)" width="100" height="118"></a></td>
</tr>
<tr>
<td><a href="people/gavin_collings.htm">Gavin Collings</a></td>
<td><a href="people/gavin_collings.jpg"><img border="0" src="people/gavin_collings_small.jpg" alt="gavin_collings.jpg (16739 bytes)" width="100" height="137"></a></td>
</tr>
<tr>
<td><a href="people/greg_colvin.htm">Greg Colvin</a></td>
<td><a href="people/greg_colvin.jpg"><img src="people/greg_colvin_small.jpg" alt="greg_colvin.jpg (52740 bytes)" border="0" width="100" height="133"></a></td>
</tr>
<tr>
<td><a href="http://www.ocsltd.com/founderff.html">Sean Corfield</a></td>
<td><a href="people/sean_corfield.jpg"><img src="people/sean_corfield_small.jpg" alt="sean_corfield.jpg (51225 bytes)" border="0" width="100" height="133"></a></td>
</tr>
<tr>
<td><a href="people/beman_dawes.html">Beman Dawes</a></td>
<td><a href="people/beman_dawes.jpg"><img src="people/beman_dawes_small.jpg" alt="beman_dawes.jpg (47863 bytes)" border="0" width="100" height="133"></a></td>
</tr>
<tr>
<td><a href="people/aleksey_gurtovoy.htm">Aleksey Gurtovoy</a></td>
<td><a href="people/aleksey_gurtovoy.jpg"><img border="0" src="people/aleksey_gurtovoy_small.jpg" alt="aleksey_gurtovoy.jpg (12871 bytes)" width="100" height="120"></a></td>
</tr>
<tr>
<td><a href="people/kevlin_henney.htm">Kevlin Henney</a></td>
<td><a href="people/kevlin_henney.jpg"><img src="people/kevlin_henney_small.jpg" alt="kevlin_henney.jpg (27191 bytes)" border="0" width="100" height="133"></a></td>
</tr>
<tr>
<td><a href="people/howard_hinnant.htm">Howard Hinnant</a></td>
<td><a href="people/howard_hinnant.jpg"><img border="0" src="people/howard_hinnant_small.jpg" alt="howard_hinnant.jpg (19817 bytes)" width="100" height="97"></a></td>
</tr>
<tr>
<td><a href="http://www.josuttis.com">Nicolai Josuttis</a></td>
<td><a href="people/nicolai_josuttis.jpg"><img src="people/nicolai_josuttis_small.jpg" alt="nicolai_josuttis.jpg (40745 bytes)" border="0" width="100" height="133"></a></td>
</tr>
<tr>
<td><a href="people/dietmar_kuehl.htm">Dietmar Kühl</a></td>
<td><a href="people/dietmar_kuehl.jpg"><img src="people/dietmar_kuehl_small.jpg" alt="dietmar_kuehl.jpg (57821 bytes)" border="0" width="100" height="133"></a></td>
</tr>
<tr>
<td><a href="people/john_maddock.htm">John Maddock</a></td>
<td><a href="people/john_maddock.jpg"><img border="0" src="people/john_maddock_small.jpg" alt="john_maddock.jpg (14611 bytes)" width="100" height="132"></a></td>
</tr>
<tr>
<td><a href="people/jens_maurer.htm">Jens Maurer</a></td>
<td><a href="people/jens_maurer.jpg"><img border="0" src="people/jens_maurer_small.jpg" width="100" height="124"></a></td>
</tr>
<tr>
<td><a href="people/paul_moore.htm">Paul Moore</a></td>
<td><a href="people/paul_moore.jpg"><img border="0" src="people/paul_moore_small.jpg" alt="paul_moore.jpg (12023 bytes)" width="100" height="81"></a></td>
</tr>
<tr>
<td><a href="people/mark_rodgers.htm">Mark Rodgers</a></td>
<td><a href="people/mark_rodgers.jpg"><img border="0" src="people/mark_rodgers_small.jpg" alt="mark_rodgers.jpg (23035 bytes)" width="100" height="75"></a></td>
</tr>
<tr>
<td><a href="people/jeremy_siek.htm">Jeremy Siek</a></td>
<td><a href="people/jeremy_siek.jpg"><img border="0" src="people/jeremy_siek_small.jpg" alt="jeremy_siek.jpg (12867 bytes)" width="100" height="133"></a></td>
</tr>
</table>
</body>
</html>
+50
View File
@@ -0,0 +1,50 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Aleksey Gurtovoy</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<p><a href="aleksey_gurtovoy.jpg"><img border="0" src="aleksey_gurtovoy_small.jpg" alt="aleksey_gurtovoy.jpg (12871 bytes)" align="left" hspace="10" vspace="5" width="100" height="120"></a></p>
<p>Aleksey Gurtovoy is just a one Russian guy from Siberia, who now lives and
works in the United States. He is a technical lead in a small software company <a href="http://www.meta-comm.com">MetaCommunications</a>,
a job and people which have taught him so much.</p>
<p>He was born in early 1977, has been in love with computers since 1989, and
still has a lot of (exciting) ideas for his &quot;spare time&quot; in the next
few years. The first computer he worked with was DEC PDP-11, and he still has a
kind of nostalgia about this amazing machine. He graduated with honors from
Krasnoyarsk Technical State University in 1998 with a Master Degree in Computer
Science.</p>
<p>While being acknowledged as a talented programmer, Aleksey tries to be a
better engineer than he is now and hopes that reading good books will help him
with that task. He reads a lot... One of his favorite books about his profession
is 'The Mythical Man-Month' by Frederic P. Brooks, Jr.</p>
<p>He has been working with C++ since 1993, he loves the language and wants to
be involved in its progress. Sometimes you can come across his articles in the <a href="news:comp.lang.c++.moderated">comp.lang.c++.moderated</a>
and <a href="news:comp.std.c++">comp.std.c++</a><a> newsgroups. The other
numerous things Aleksey is interested in include patterns, object-oriented
methodology and programming languages, organization of software development
process and tools &amp; technologies which make programmer's life easier (e.g.
compilers).</p>
<p>He is not married, but he has in mind one great girl he hopes to be with
someday.</p>
<p>You can contact him by sending mail to </a><a href="mailto:alexy@meta-comm.com">alexy@meta-comm.com</a><a>.</p>
</a>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

+36
View File
@@ -0,0 +1,36 @@
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Beman Dawes</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<p><a href="beman_dawes.jpg"><img src="beman_dawes_small.jpg" alt="beman_dawes.jpg (62536 bytes)" border="0" align="left" hspace="10" vspace="5" width="100" height="133"></a>
Beman Dawes is a software developer from Virginia in the United States.</p>
<p>He is the author of the StreetQuick® geographic atlas library used by
digital map publishers to help people get really, really, lost.</p>
<p>He wrote his first computer program 40 years ago, and does not mourn the
passing of <a href="http://www.mta.ca/~amiller/cs3711/ibm650/ibm650.htm">bi-quinary</a>
arithmetic.</p>
<p>Beman has been a voting member of the ANSI/ISO C++ Standards Committee since
1992, and chaired the Library Working Group for five years.</p>
<p>He enjoys travel, sailing, hiking, and biking. He is married, and he and his
wife have three cats.</p>
<p>Email: <a href="mailto:beman@esva.net">beman@esva.net</a></p>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

+48
View File
@@ -0,0 +1,48 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Darin Adler</title>
</head>
<body>
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<p><a href="darin_adler.jpg"><img border="0" src="darin_adler_small.jpg" alt="darin_adler.jpg (30416 bytes)" align="left" hspace="10" vspace="5" width="100" height="135"></a>Darin Adler has been programming computers since 1976. He loves to do it.</p>
<p>His first major professional experience was at <a href="http://apple.com">Apple
Computer</a>. In 1988 he led the team that rewrote the Macintosh Finder in C++.
Before that project was completed, he was shanghaied to be the technical lead
for the System 7 project (these days they would call it &quot;Mac OS 7&quot;).
The group he formed to help him do that, the Blue Meanies, is still a <a href="http://www.spies.com/~greg/bluemeanies.html">legend</a>
in the Apple community.</p>
<p>Since Apple, Darin has worked at <a href="http://www.generalmagic.com">General
Magic</a> as an architect of the <a href="http://www.google.com/search?q=Magic+Cap">Magic
Cap</a> OS, used the moniker <a href="http://bentspoon.com">Bent Spoon Software</a>
to do consulting, and helped start <a href="http://www.eazel.com">Eazel</a>, a
company that is working to make Linux easier to use. Since 1997, he has worked
from his home in Los Angeles, CA, collaborating with clients and coworkers in
other locations.</p>
<p>He prefers to use and program Macintosh computers with C++. But Eazel's
mission to make Linux easier to use is best accomplished with a non-Macintosh
PC. (That is why Darin is sitting in front of <a href="darin_adler.jpg">two computers</a>.)
The other people working on the <a href="http://www.gnome.org">GNOME</a> project
don't like C++, so he's writing a lot of C code these days.</p>
<p>The <a href="darin_adler.jpg">larger version</a> of his picture shows him hard at
work with his C++ guru, his daughter Sophia.</p>
<p>He has hobbies and stuff but you don't want to read about that here.</p>
<p>You can contact him by sending mail to <a href="mailto:darin@bentspoon.com">darin@bentspoon.com</a>.</p>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

+29
View File
@@ -0,0 +1,29 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Dave Abrahams</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<p><a href="dave_abrahams.jpg"><img src="dave_abrahams_small.jpg" alt="dave_abrahams.jpg (30926 bytes)"
border="0" align="left" hspace="10" vspace="5" width="100" height="75"></a>
Dave Abrahams often shows up at C++ standards committee meetings on a bicycle.</p>
<p>Beyond that, we will just have to wait until he sends in a biography.</p>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

+42
View File
@@ -0,0 +1,42 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Dietmar Kuehl </title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" WIDTH="277" HEIGHT="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home </big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries </big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People </big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ </big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More </big></font></a></td>
</tr>
</table>
<p><a href="dietmar_kuehl.jpg"><img src="dietmar_kuehl_small.jpg" hspace="10" vspace="5" alt="dietmar_kuehl.jpg (57821 bytes)" border="0" align="left" WIDTH="100" HEIGHT="133"></a>Dietmar Kuehl (the
&quot;ue&quot; is actually a &quot;u-umlaut&quot;, ie. one of those funny German
characters which has two dots above it) was fork(2)ed in early 1968.</p>
<p>He visited school more or less successfully from 1973 to 1987. In 1987 he started to
study at the Technical University of Berlin. He finished his studies in 1997 with a Diplom
(roughly the German equivalent of a masters) in Mathematics. His thesis was &quot;Design
Pattern for the Implementation of Graph Algorithms&quot;; strike the &quot;Design
Pattern&quot; and put in &quot;Generic&quot; somehow to get an idea of the main topic. The
thesis is available from <a href="ftp://ftp.informatik.uni-konstanz.de/pub/algo/personal/kuehl/da.ps.gz">ftp://ftp.informatik.uni-konstanz.de/pub/algo/personal/kuehl/da.ps.gz</a>.</p>
<p>Since 1997 he has worked as consultant for a small company called Claas Solutions (the
&quot;aa&quot; is no typo), mainly working for major German banks. Since late 1995 Dietmar
Kuehl has been one of the moderators of the newsgroup <a href="news:comp.lang.c++.moderated">comp.lang.c++.moderated</a>. He is active on the C++
Standards committee.</p>
<p>Email: <a href="mailto:dietmar.kuehl@claas-solutions.de">dietmar.kuehl@claas-solutions.de</a></p>
<p>Home page:&nbsp; <a href="http://www.claas-solutions.de/kuehl/">http://www.claas-solutions.de/kuehl/</a></p>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

+60
View File
@@ -0,0 +1,60 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Ed Brey</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home </big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries </big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People </big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ </big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More </big></font></a></td>
</tr>
</table>
<p><a href="ed_brey.jpg"><img src="ed_brey_small.jpg" alt="ed_brey.jpg" border="0" align="left" hspace="10" vspace="5" width="100" height="133"></a>
Ed Brey lives in Menomonee Falls, Wisconsin, a village outside of
Milwaukee. In the summertime, he likes to play tennis with his fiancée, and
in the winter, if there is enough snow, he likes to go tobogganing or
ice-skating. If it is not nice enough outside for either of those, he plays
on the piano. Although Ed enjoys doing those activities, most of his time is
currently spent at work and at home studying. He works at <A
HREF="http://www.eaton.com">Eaton Corporation</A> in Milwaukee and is working
on his masters degree in computer engineering through <A
HREF="http://www.ntu.edu">NTU</A>.
<P>Ed started working for Eaton as part of <A
HREF="http://www.mu.edu">Marquette University</A>'s engineering co-op program.
Upon graduation in 1995 from Marquette with a BS in electrical and computer
engineering, he was hired on full-time at Eaton. At Eaton, Ed has been
primarily focused on embedded system design and programming in the industrial
controls industry. Recently, however, he has delved into writing a
near-real-time database engine running under Windows.
<P>Ed has held programming as a pastime since his grade school days, when he
wrote a babysitting invoicing program. Soon after, he wrote a game inspired
by the TV game show "Press Your Luck". Ever since, programming languages and
concepts, along with finding ways to improve the art and science of coding
software, have always peeked his interest.
<P>Lastly, Ed has managed to retain his perspective. As fun as computers and
programming are, Ed's true love in his life is his fiancée Beth.</P>
<HR>
<P>Email: <A HREF="mailto:brey@ductape.net">brey@ductape.net</A>
<P>Home page: <A
HREF=http://www.cc.edu/~eschmied/>http://ww.cc.edu/~eschmied/</A>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

+31
View File
@@ -0,0 +1,31 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Gavin Collings</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" WIDTH="277" HEIGHT="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<p><img border="0" src="gavin_collings_small.jpg" alt="gavin_collings.jpg (16786 bytes)" align="left" hspace="10" vspace="5" width="100" height="137">Gavin Collings was born and bred in Wiltshire in the UK. After spending the
1960s in childish pursuits, he spent the 1970s at school becoming ever more fascinated with the mysteries of physics. This he went on to study at St
John's College, Cambridge until 1985, at which time he entered the world of employment.</p>
<p>After early work with other languages, he became involved with C++ in the early 1990s and now works as consultant, not far from his original home, in
Gloucestershire.</p>
<p>He enjoys playing the piano, walking in the local countryside, playing 5-a-side (indoor soccer), and sailing.</p>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

+28
View File
@@ -0,0 +1,28 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Greg Colvin</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" WIDTH="277" HEIGHT="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home </big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries </big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People </big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ </big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More </big></font></a></td>
</tr>
</table>
<p><a href="greg_colvin.jpg"><img src="greg_colvin_small.jpg" alt="greg_colvin.jpg (52k bytes)" border="0" align="left" hspace="10" vspace="5" WIDTH="100" HEIGHT="133"></a> Dr.
Greg Colvin has been hacking happily since 1972. He is a member of the ANSI/ISO C++
standards committee and a Principal Member of Technical Staff with the Java Products Group
at Oracle Corporation. In his spare time he plays apocalyptic electric blues guitar in his
Colorado, USA home studio.</p>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

+34
View File
@@ -0,0 +1,34 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Howard Hinnant</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home </big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries </big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People </big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ </big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More </big></font></a></td>
</tr>
</table>
<p><a href="howard_hinnant.jpg"><img border="0" src="howard_hinnant_small.jpg" align="left" hspace="10" vspace="5" alt="howard_hinnant.jpg (19817 bytes)" width="100" height="97"></a>When
Howard Hinnant is not monkeying around, he is the principal author of the
Metrowerks CodeWarrior C++ library. He is also a member of the C++ Standards
committee.</p>
<p>Howard is married with four children, two dogs, one cat, a rabbit, an
undetermined number of rodents (which the cat ignores), and ... well, we're
really not sure what else. When not sitting in front of his computer, Howard
enjoys snow skiing and ... more, snow skiing.</p>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

+39
View File
@@ -0,0 +1,39 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Jens Maurer</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<p><a href="jens_maurer.jpg"><img border="0" src="jens_maurer_small.jpg" alt="jens_maurer.jpg (15698 bytes)" hspace="10" vspace="5" align="left" width="100" height="124"></a>
Jens Maurer is a software developer from Germany who lives close to
Frankfurt/Main. He was born in 1973 and hasn't died yet.</p>
<p>He has worked for a multimedia company programming home-banking applications,
CGI scripts and Java applications. He also helped program some simulation
systems for long-term decision support to aid businessmen in arguing about
company investments.</p>
<p>He is neither married nor does he have a girl friend, but asked his
colleagues to find one for him.</p>
<p>In his spare time, he likes visiting foreign countries but dislikes getting
there in uncomfortable airplane seats. On random week-ends, he enjoys
participating in historic dance courses (without a costume, of course).
Sometimes, he needs fresh air and goes for a walk.&nbsp;</p>
<p>Email: <a href="mailto:Jens.Maurer@gmx.net">Jens.Maurer@gmx.net</a></p>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

+36
View File
@@ -0,0 +1,36 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Jeremy Siek</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home </big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries </big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People </big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ </big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More </big></font></a></td>
</tr>
</table>
<p><a href="jeremy_siek.jpg"><img border="0" src="jeremy_siek_small.jpg" alt="jeremy_siek.jpg (12867 bytes)" align="left" hspace="10" vspace="5" width="100" height="133"></a>Jeremy Siek is a student at Univ. of Notre Dame, though currently
he's on "sabatical", working with the SGI C++ compiler and library team.<br>
<br>
He is the author of the Matrix Template Library (MTL), and helped design the new Generic Graph Component Library (GGCL).<br>
<br>
Once in a while Jeremy "comes up for air" and enjoys fencing, hiking, skiing, and reading. He's also been spotted at a few fightin' irish
tailgaters (BYOB).<br>
<br>
Jeremy has an intense fear for the ancient dark forests where dusty decks thrive and devour programmers, places where the light of abstraction
has not yet reached.</p>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

+41
View File
@@ -0,0 +1,41 @@
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>John Maddock</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" cellpadding="2" bgcolor="#007F7F">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif"
alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font color="#FFFFFF" size="4"
face="Arial">Home </font></a></td>
<td><a href="../libraries.htm"><font color="#FFFFFF"
size="4" face="Arial">Libraries </font></a></td>
<td><a href="../people.htm"><font color="#FFFFFF"
size="4" face="Arial">People </font></a></td>
<td><a href="../more/faq.htm"><font color="#FFFFFF"
size="4" face="Arial">FAQ </font></a></td>
<td><a href="../more/index.htm"><font color="#FFFFFF"
size="4" face="Arial">More </font></a></td>
</tr>
</table>
<p><a href="john_maddock.jpg"><img src="john_maddock_small.jpg"
alt="john_maddock.jpg (14611bytes)" align="left" border="0"
hspace="10" vspace="5" width="100" height="133"></a> John Maddock
is a software developer from England and holds a PhD in Chemistry,
but found that computers smell less and explode less often!</p>
<p>John is the author of the <a
href="http://ourworld.compuserve.com/homepages/John_Maddock/regexpp.htm">regex++
regular expression package</a>, has an almost pathological
interest in anything that &quot;can't be done&quot;, and can be
contacted at <a href="mailto:John_Maddock@compuserve.com">John_Maddock@compuserve.com</a>.</p>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

+49
View File
@@ -0,0 +1,49 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Kevlin Henney</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home </big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries </big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People </big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ </big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More </big></font></a></td>
</tr>
</table>
<p><a href="kevlin_henney.jpg"><img border="0" src="kevlin_henney_small.jpg" alt="kevlin_henney.jpg (18107 bytes)" align="left" hspace="10" vspace="5" width="100" height="142"></a>
Kevlin Henney (<a href="mailto:kevlin@curbralan.com">mailto:kevlin@curbralan.com</a>, <a href="http://www.curbralan.com">http://www.curbralan.com</a>)
is an independent consultant and trainer based in the UK. He has developed and
delivered training course material and consultancy on many aspects of OO
development, which he has practiced across a number of domains for over a
decade. His professional interests include patterns, OO and component based
design, architecture, distributed object systems, C++, and Java. He is also a
member of the BSI C++ standards committee.
</p>
<p>Now that writing code is no longer the core responsibility of his job, his
non-professional interests seem to include the hacking associated with the
aforementioned professional interests. However, never being one to keep
something to himself (like C++'s relationship with C, this is regarded as both a
strength and a weakness), he shares/inflicts (delete as necessary) his
professional and non-professional development experiences with/on (ditto) others
through writing articles and presenting tutorials, workshops and papers at
conferences.</p>
<p>He is married, and not just to his work. He and Carolyn have neither children
nor pets, but he feels that the missing aggravation is made up for by a house
that needs a great deal of work, requiring constant attention and feeding of
money. The little spare time that remains to him is taken up with music,
reading, pub appreciation, etc. Finally, although he enjoys writing, Kevlin is
not really one for writing in the third person.</p>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

+36
View File
@@ -0,0 +1,36 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Mark Rodgers</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<p><a href="mark_rodgers.jpg"><img border="0" src="mark_rodgers_small.jpg" alt="mark_rodgers.jpg (23035 bytes)" align="left" hspace="10" vspace="5" width="100" height="75"></a>Mark
Rodgers lives in <a href="http://www.wcc.govt.nz/wellington/">Wellington</a>,
the capital of <a href="http://www.govt.nz/aboutnz/profile.php3">New Zealand</a>,
with his wife, Clare, and their son, Ronnie.</p>
<p>He studied Computer Science at <a href="http://www.vuw.ac.nz">Victoria
University of Wellington</a> from 1983 to 1986, completing a <nobr>B.Sc. (Hons).</nobr>
He now works as consultant through his company, Cadenza New Zealand Ltd, and
also markets Cadenza Drawing Board™, a CAD system he developed.</p>
<p>Mark has been programming in C++ since about 1990, and loves every minute of
it, but is continually amazed at how much more he still has to learn.</p>
<p>You can contact Mark at <a href="mailto:mark.rodgers@cadenza.co.nz">mark.rodgers@cadenza.co.nz</a>.
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

+38
View File
@@ -0,0 +1,38 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Paul Moore</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<p><a href="paul_moore.jpg"><img border="0" src="paul_moore_small.jpg" alt="paul_moore.jpg (12023 bytes)" align="left" hspace="10" vspace="5" width="100" height="81"></a>Paul
Moore lives in Cheshire, England. He is married, with one son. His &quot;day
job&quot; is as an Oracle DBA, but he writes C and C++ programs in his spare
time.</p>
<p>Paul started programming on Acorn's BBC Micro and RISC PC series of
computers, but finally went mainstream and bought a PC, on which he now runs
Windows and Linux. Paul's main interest is in porting and developing open-source
software, and so his main programming language is C (at least until the open
source community switches to C++).</p>
<p>Paul's main claim to C++ fame is that he owns all 3 editions of Bjarne
Stroustrup's &quot;The C++ Programming language&quot;, plus the ARM and the C++
standard, but he didn't own a C++ compiler until after the 3rd edition of
Stroustrup's book came out. Make of that what you will...</p>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

+27
View File
@@ -0,0 +1,27 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Valentin Bonnard</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF"><img src="../c++boost.gif" alt="c++boost.gif (8819 bytes)" WIDTH="277" HEIGHT="86"></td>
<td><a href="../index.htm"><font face="Arial" color="#FFFFFF"><big>Home </big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries </big></font></a></td>
<td><a href="../people.htm"><font face="Arial" color="#FFFFFF"><big>People </big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More </big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ </big></font></a></td>
</tr>
</table>
<p><a href="valentin_bonnard.jpg"><img src="valentin_bonnard_small.jpg" alt="valentin_bonnard.jpg (18207 bytes)" border="0" align="left" hspace="10" vspace="5" WIDTH="100" HEIGHT="133"></a>Valentin Bonnard is currently studying the semantics of
programming languages and logical proofs. In his spare time, he writes C++ programs, and
participates in newsgroup discussions about C++. He is also a member of AFNOR, the French
C++ standardisation committee. </p>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB