GNU C++ Standard Library
Keywords: libstdc++, homepage, home, C++, library, c++, std, g++, ABI, STL

## The GNU C++ Standard Library

This documentation describes Apple's version of the GNU C++ Standard Library implementation, libstdc++. Information about using libstdc++, including GNU- and Apple-specific extensions, implementation capabilities, or known weaknesses in implementation are described here. This documentation is organized by chapters, where the chapter number references the associated chapter of the ANSI/ISO C++ standard.

- Library Introduction (Chapter 17)
  - The Standard C++ header files
  - Debugging uses of the standard library
  - The Standard C++ library and multithreading
  - `<foo>` vs `<foo.h>`
  - Porting HOWTO
  - Behavior specific to libstdc++-v3
  - Preprocessor macros controlling the library
- Library Support (Chapter 18)
  - Types
  - Implementation properties
  - Start and Termination
  - Dynamic memory management
  - RTTI, the ABI, and demangling
- Diagnostics (Chapter 19)
  - Adding data to exceptions
  - Exception class hierarchy diagram
  - Concept checkers -- new and improved!
  - Verbose `terminate`
- General Utilities (Chapter 20)
  - `auto_ptr` is not omnipotent
  - `auto_ptr` inside container classes
  - Functors
  - Pairs
- Strings (Chapter 21)
  - MFC's CString
  - A case-insensitive string class
  - Breaking a C++ string into tokens
  - Simple transformations
  - Making strings of arbitrary character types
- Localization (Chapter 22)
  - class locale
  - class codecvt
  - class ctype
  - class messages
  - Bjarne Stroustrup on Locales
  - Nathan Myers on Locales
  - Correct Transformations
- Containers (Chapter 23)
  - Making code unaware of the container/array difference
  - Variable-sized bitmasks
  - Containers and multithreading
  - "Hinting" during insertion
  - Bitmasks and string arguments
  - `std::list::size()` is O(n)!
  - Space overhead management for vectors
- Iterators (Chapter 24)
  - They ain't pointers!
  - It ends where?
- Algorithms (Chapter 25)
  - Prerequisites
  - Special `swap`s
- Numerics (Chapter 26)
  - Complex Number Processing
  - Array Processing
  - Numerical Functions
  - C99
- Input/Output (Chapter 27)
  - Copying a file
  - The buffering is screwing up my program!
  - Binary I/O
  - What is this <sstream>/stringstreams thing?
  - Deriving a stream buffer
  - More on binary I/O
  - Pathetic performance? Ditch C.
  - Threads and I/O
  - Which header?
- Extensions to the Standard Library
  - Ropes and trees and hashes, oh my!
  - Added members and types
  - Allocators (versions 3.0, 3.1, 3.2)
  - Allocators (version 3.3)
  - Compile-time checks
  - LWG Issues
  - Debugging containers

See license.html for copying conditions.