source: trunk/src/gcc/libstdc++-v3/docs/html/explanations.html@ 2252

Last change on this file since 2252 was 1392, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r1391,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 3.3 KB
Line 
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="[email protected] (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" />
14</head>
15<body>
16
17<h1 class="centered"><a name="top">Explanatory notes about libstdc++-v3
18design</a></h1>
19
20<p class="fineprint"><em>
21 The latest version of this document is always available at
22 <a href="http://gcc.gnu.org/onlinedocs/libstdc++/explanations.html">
23 http://gcc.gnu.org/onlinedocs/libstdc++/explanations.html</a>.
24</em></p>
25
26<p><em>
27 To the <a href="http://gcc.gnu.org/libstdc++/">libstdc++-v3 homepage</a>.
28</em></p>
29
30
31<!-- ####################################################### -->
32<hr />
33<h3><a name="cstdio">&quot;I/O packages&quot;, <code>--enable-cstdio</code></a></h3>
34<p>In addition to all the nifty things which C++ can do for I/O, its library
35 also includes all of the I/O capabilites of C. Making them work together
36 can be a challenge, not only
37 <a href="27_io/howto.html#8">for the programmer</a> but for the
38 implementors as well.
39</p>
40<p>There are two ways to do a C++ library: the cool way, and the easy way.
41 More specifically, the cool-but-easy-to-get-wrong way, and the
42 easy-to-guarantee-correct-behavior way. For 3.0, the easy way is used.
43</p>
44<p>Choosing 'stdio' is the easy way. It builds a C++ library which forwards
45 all operations to the C library. Many of the C++ I/O functions are
46 specified in the standard 'as if' they called a certain C function; the
47 easiest way to get it correct is to actually call that function. The
48 disadvantage is that the C++ code will run slower (fortunately, the layer
49 is thin).
50</p>
51<p>Other packages are possible. For a new package, a header must be
52 written to provide types like streamsize (usually just a typedef), as
53 well as some internal types like<code> __c_file_type </code> and
54 <code> __c_lock </code> (for the stdio case, these are FILE (as in
55 &quot;FILE*&quot;) and a simple POSIX mutex, respectively). An
56 interface class called <code> __basic_file </code> must also be filled in;
57 as an example, for the stdio case, these member functions are all
58 inline calles to fread, fwrite, etc.
59</p>
60<p>Return <a href="#top">to the top of the page</a> or
61 <a href="http://gcc.gnu.org/libstdc++/">to the homepage</a>.
62</p>
63
64
65<hr />
66<h3><a name="alloc">Internal Allocators</a></h3>
67<p>
68</p>
69<p>Return <a href="#top">to the top of the page</a> or
70 <a href="http://gcc.gnu.org/libstdc++/">to the homepage</a>.
71</p>
72
73
74<!-- ####################################################### -->
75
76<hr />
77<p class="fineprint"><em>
78See <a href="17_intro/license.html">license.html</a> for copying conditions.
79Comments and suggestions are welcome, and may be sent to
80<a href="mailto:[email protected]">the libstdc++ mailing list</a>.
81</em></p>
82
83
84</body>
85</html>
Note: See TracBrowser for help on using the repository browser.