Chapter 3. Using
Prev | Part I. Introduction | Next

## Chapter 3. Using

## Command Options

The set of features available in the GNU C++ library is shaped by several GCC Command Options. Options that impact libstdc++ are enumerated and detailed in the table below.

The standard library conforms to the dialect of C++ specified by the `-std` option passed to the compiler. By default, g++ is equivalent to g++ -std=gnu++17 since GCC 11, and g++ -std=gnu++14 in GCC 6, 7, 8, 9, and 10, and g++ -std=gnu++98 for older releases.

Table 3.1. C++ Command Options

Option Flags | Description
--- | ---
`-std` | Select the C++ standard, and whether to use the base standard or GNU dialect.
`-fno-exceptions` | See exception-free dialect
`-fno-rtti` | As above, but RTTI-free dialect.
`-pthread` | For ISO C++11 `<thread>`, `<future>`, `<mutex>`, or `<condition_variable>`.
`-latomic` | Linking to `libatomic` is required for some uses of ISO C++11 `<atomic>`.
`-lstdc++exp` | Linking to `libstdc++exp.a` is required for use of experimental C++ library features. This currently provides support for the C++23 types defined in the `<stacktrace>` header, the Filesystem library extensions defined in the `<experimental/filesystem>` header, and the Contracts extensions enabled by `-fcontracts`.
`-lstdc++fs` | Linking to `libstdc++fs.a` is another way to use the Filesystem library extensions defined in the `<experimental/filesystem>` header. The `libstdc++exp.a` library also provides all the symbols contained in this library.
`-fopenmp` | For parallel mode.
`-ltbb` | Linking to tbb (Thread Building Blocks) is required for use of the Parallel Standard Algorithms and execution policies in `<execution>`.
`-ffreestanding` | Limits the library to its freestanding subset. Headers that are not supported in freestanding will emit a "This header is not available in freestanding mode" error. Headers that are in the freestanding subset partially will not expose functionality that is not part of the freestanding subset.

Prev | Up | Next
Make | Home | Headers