]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/libstdc++-v3/contrib/libstdc++-v3-4.1.0/docs/html/explanations.html
update
[l4.git] / l4 / pkg / libstdc++-v3 / contrib / libstdc++-v3-4.1.0 / docs / html / explanations.html
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html
3           PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4           "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7 <head>
8    <meta name="AUTHOR" content="pme@gcc.gnu.org (Phil Edwards)" />
9    <meta name="KEYWORDS" content="libstdc++, libstdc++-v3, GCC, g++" />
10    <meta name="DESCRIPTION" content="Explanatory notes about libstdc++-v3." />
11    <meta name="GENERATOR" content="vi and eight fingers" />
12    <title>Explanatory notes about libstdc++-v3 design</title>
13 <link rel="StyleSheet" href="lib3styles.css" type="text/css" />
14 <link rel="Copyright" href="17_intro/license.html" type="text/html" />
15 </head>
16 <body>
17
18 <h1 class="centered"><a name="top">Explanatory notes about libstdc++-v3
19 design</a></h1>
20
21 <p class="fineprint"><em>
22    The latest version of this document is always available at
23    <a href="http://gcc.gnu.org/onlinedocs/libstdc++/explanations.html">
24    http://gcc.gnu.org/onlinedocs/libstdc++/explanations.html</a>.
25 </em></p>
26
27 <p><em>
28    To the <a href="http://gcc.gnu.org/libstdc++/">libstdc++-v3 homepage</a>.
29 </em></p>
30
31
32 <!-- ####################################################### -->
33 <hr />
34 <h3><a name="cstdio">&quot;I/O packages&quot;, <code>--enable-cstdio</code></a></h3>
35 <p>In addition to all the nifty things which C++ can do for I/O, its library
36    also includes all of the I/O capabilites of C.  Making them work together
37    can be a challenge, not only
38    <a href="27_io/howto.html#8">for the programmer</a> but for the
39    implementors as well.
40 </p>
41 <p>There are two ways to do a C++ library:  the cool way, and the easy way.
42    More specifically, the cool-but-easy-to-get-wrong way, and the
43    easy-to-guarantee-correct-behavior way.  For 3.0, the easy way is used.
44 </p>
45 <p>Choosing 'stdio' is the easy way.  It builds a C++ library which forwards
46    all operations to the C library.  Many of the C++ I/O functions are
47    specified in the standard 'as if' they called a certain C function; the
48    easiest way to get it correct is to actually call that function.  The
49    disadvantage is that the C++ code will run slower (fortunately, the layer
50    is thin).
51 </p>
52 <p>Other packages are possible.  For a new package, a header must be
53    written to provide types like streamsize (usually just a typedef), as
54    well as some internal types like<code> __c_file_type </code> and
55    <code> __c_lock </code> (for the stdio case, these are FILE (as in
56    &quot;FILE*&quot;) and a simple POSIX mutex, respectively).  An
57    interface class called <code> __basic_file </code> must also be filled in;
58    as an example, for the stdio case, these member functions are all
59    inline calles to fread, fwrite, etc.
60 </p>
61 <p>Return <a href="#top">to the top of the page</a> or
62    <a href="http://gcc.gnu.org/libstdc++/">to the homepage</a>.
63 </p>
64
65
66 <hr />
67 <h3><a name="alloc">Internal Allocators</a></h3>
68 <p>
69 </p>
70 <p>Return <a href="#top">to the top of the page</a> or
71    <a href="http://gcc.gnu.org/libstdc++/">to the homepage</a>.
72 </p>
73
74
75 <!-- ####################################################### -->
76
77 <hr />
78 <p class="fineprint"><em>
79 See <a href="17_intro/license.html">license.html</a> for copying conditions.
80 Comments and suggestions are welcome, and may be sent to
81 <a href="mailto:libstdc++@gcc.gnu.org">the libstdc++ mailing list</a>.
82 </em></p>
83
84
85 </body>
86 </html>