The libstdc++-v3 directory in the
GCC sources contains the files needed to create the GNU C++ Library.
It has subdirectories:
docincludeinclude/std#include <name> directives
in standard-conforming user programs.
include/c--enable-cheaders=c]
include/c_globalstd::
namespace. [NB: this is the default, and is the same as
--enable-cheaders=c_global]
include/c_stdstd::
namespace. [NB: this is the same as
--enable-cheaders=c_std]
include/bitsinclude/backward<backward/hash_map>.
They are not used in this library.
include/extinclude/debug,
include/parallel, and
include/profile
scriptssrcsrc/c++98-std=gnu++98.
src/c++11-std=gnu++11.
src/filesystemsrc/sharedsrc/c++98 and
src/c++11testsuites/[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.