The libstdc++-v3
directory in the
GCC sources contains the files needed to create the GNU C++ Library.
It has subdirectories:
doc
include
include/std
#include <name>
directives
in standard-conforming user programs.
include/c
--enable-cheaders=c
]
include/c_global
std::
namespace. [NB: this is the default, and is the same as
--enable-cheaders=c_global
]
include/c_std
std::
namespace. [NB: this is the same as
--enable-cheaders=c_std
]
include/bits
include/backward
<backward/hash_map>
.
They are not used in this library.
include/ext
include/debug
,
include/parallel
, and
include/profile
scripts
src
src/c++98
-std=gnu++98
.
src/c++11
-std=gnu++11
.
src/filesystem
src/shared
src/c++98
and
src/c++11
testsuites/[backward, demangle, ext, performance, thread, 17_* to 30_*]
Other subdirectories contain variant versions of certain files that are meant to be copied or linked by the configure script. Currently these are:
config/abi
config/allocator
config/cpu
config/io
config/locale
config/os
In addition, a subdirectory holds the convenience library libsupc++.
libsupc++
Note that glibc also has a bits/
subdirectory. We need to be careful not to collide with names in its
bits/
directory. For example
<bits/std_mutex.h>
has to be
renamed from <bits/mutex.h>
.
Another solution would be to rename bits
to (e.g.) cppbits
.
In files throughout the system, lines marked with an "XXX" indicate a bug or incompletely-implemented feature. Lines marked "XXX MT" indicate a place that may require attention for multi-thread safety.