<!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++ Source: Main Index</title>
</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++ Source Documentation</h1>

<h2>Documentation Overview</h2>

<p class="smallertext">Generated on @DATE@.</p>

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

<p>The other type is the source documentation, of which this is the first page.
</p>

<p>Here are entry points to all the pages generated by Doxygen:
   <ul>
    <li><a href="modules.html">Modules</a></li>

    <li>Namespaces
    <ul>
    <li><a href="namespaces.html">List</a></li>
    <li><a href="namespacemembers.html">Members</a></li>
    </ul>
    </li>

    <li>Classes
    <ul>
    <li><a href="classes.html">List</a></li>
    <li><a href="hierarchy.html">Hierarchy</a></li>
    <li><a href="functions.html">Members</a></li>
    </ul>
    </li>

    <li><a href="files.html">Source Files</a></li>
    <li><a href="todo.html">TODO List</a></li>
   </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 the section "Documentation Style"
   in <code>doc/xml/manual/appendix_contributing.xml</code> in the
   source tree for how to create (and write) the doxygen markup.
  This style guide can also be viewed on the <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/documentation_hacking.html">web</a>.

<h2>License, Copyright, and Other Lawyerly Verbosity</h2>
<p>The libstdc++ documentation is released under
   <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/appendix_gpl.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>
