<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libstdc++-v3 Source: Main Index</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body bgcolor="#ffffff">
<!--
     Originally generated by Doxygen 1.2.12.

     This used to be surrounded by /* */ marks and tagged with @mainpage, so
     that Doxygen would create the index page from it.  HOWEVER, Doxygen
     ignores all but the most basic HTML tags, and even with those it strips
     all the attributes.  (See, the HTML you write for @mainpage isn't used
     directly; it all gets run through Doxygen and re-output.)  So lots of
     tags were all being mangled.

     Funk 'dat.  Now we let Doxygen do whatever it feels like doing for the
     index page, and then we just flat copy this over top of it.  Voila!
     Tags actually work like they're supposed to in HTML.
-->

<h1>libstdc++-v3 Source Documentation</h1>

<h2>Documentation Overview</h2>

<p class="smallertext">@LEVEL@-level docs, generated @DATE@.</p>

<p>There are two types of documentation for libstdc++-v3.  One is the
   distribution documentation, which can be read online at
   <a href="http://gcc.gnu.org/onlinedocs/libstdc++/documentation.html">http://gcc.gnu.org/onlinedocs/libstdc++/documentation.html</a>
   or offline from docs/html/documentation.html in the library source
   directory.
</p>

<p>The other type is the source documentation, of which this is the first page.
   Both &quot;user-level&quot; and &quot;maintainer-level&quot; source
   documentation is produced:  user-level docs are for the users of this
   library.  The maint-level docs are for those interested in the underlying
   workings of the library; they include all the user-level docs plus
   additional notes and additional classes/functions/etc.
</p>

<p>Here are entry points to all the pages generated by Doxygen:
   <ul>
    <li><a href="modules.html">Modules</a>
    <li><a href="hierarchy.html">Class List</a>
    <li><a href="annotated.html">Class Annotated List</a>
    <li><a href="classes.html">Class Alphabetical Index</a>
    <li><a href="globals_func.html">Function Alphabetical List</a>
    <li><a href="namespaces.html">Namespace List</a>
    <li><a href="files.html">Source File List</a>
    <li><a href="todo.html">TODO List</a> (This is incomplete... how ironic.)
   </ul>
</p>

<p>If you are using Doxygen for your own projects, you can use
   <a href="libstdc++.tag">a tag file for the appropriate version</a> and
   an entry such as
   <blockquote>
   TAGFILES = "libstdc++.tag = 
   http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen"
   </blockquote>
   Be sure to adjust the URL for the right version.  If you download a
   local copy of the source documentation for faster viewing, you can use
   the doxytag/installdox programs (part of Doxygen) to adjust the links
   for you.
</p>

<h2>Generating the documentation</h2>
<p>These HTML pages are automatically generated, along with the man pages.
   See <code>docs/doxygen/guide.html</code> in the source tree for how to
   create (and write) the pages.

<h2>License, Copyright, and Other Lawyerly Verbosity</h2>
<p>The libstdc++-v3 documentation is released under
   <a href="http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/license.html">
   these terms</a>.
</p>
<p>Part of the generated documentation involved comments and notes from
   SGI, who says we gotta say this:
   <blockquote>
   Permission to use, copy, modify, distribute and sell this software and its
   documentation for any purpose is hereby granted without fee, provided
   that the below copyright notice appears in all copies and that both
   the copyright notice and this permission notice appear in supporting
   documentation. Silicon Graphics makes no representations about the
   suitability of this software for any purpose. It is provided "as is"
   without express or implied warranty.
   <br><br>
   Copyright &copy; 1994
   Hewlett-Packard Company
   </blockquote>
</p>
<p>Part of the generated documentation is quoted from the ISO C++ Standard,
   which is Copyright &copy; 1998 by Information Technology Industry Council.
</p>

</body>
</html>
