libstdc++
stdc++.h
Go to the documentation of this file.
1// C++ includes used for precompiling -*- C++ -*-
2
3// Copyright (C) 2003-2025 Free Software Foundation, Inc.
4//
5// This file is part of the GNU ISO C++ Library. This library is free
6// software; you can redistribute it and/or modify it under the
7// terms of the GNU General Public License as published by the
8// Free Software Foundation; either version 3, or (at your option)
9// any later version.
10
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU General Public License for more details.
15
16// Under Section 7 of GPL version 3, you are granted additional
17// permissions described in the GCC Runtime Library Exception, version
18// 3.1, as published by the Free Software Foundation.
19
20// You should have received a copy of the GNU General Public License and
21// a copy of the GCC Runtime Library Exception along with this program;
22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23// <http://www.gnu.org/licenses/>.
24
25/** @file stdc++.h
26 * This is an implementation file for a precompiled header.
27 */
28
29// 17.4.1.2 Headers
30
31// C
32// Don't include cassert, it's not suitable for PCH or header unit.
33#include <cctype>
34#include <cfloat>
35#include <climits>
36#include <csetjmp>
37#include <cstdarg>
38#include <cstddef>
39#include <cstdlib>
40
41#if __cplusplus >= 201103L
42#include <cstdint>
43#if __cplusplus < 201703L
44#include <ciso646>
45#endif
46#endif
47
48// C++
49// #include <bitset>
50// #include <complex>
51#include <algorithm>
52#include <bitset>
53#include <functional>
54#include <iterator>
55#include <limits>
56#include <memory>
57#include <new>
58#include <numeric>
59#include <typeinfo>
60#include <utility>
61
62#if __cplusplus >= 201103L
63#include <array>
64#include <atomic>
65#include <initializer_list>
66#include <ratio>
67#include <scoped_allocator>
68#include <tuple>
69#include <typeindex>
70#include <type_traits>
71#endif
72
73#if __cplusplus >= 201402L
74#endif
75
76#if __cplusplus >= 201703L
77#include <any>
78// #include <execution>
79#include <optional>
80#include <variant>
81#include <string_view>
82#endif
83
84#if __cplusplus >= 202002L
85#include <bit>
86#include <compare>
87#include <concepts>
88#include <numbers>
89#include <ranges>
90#include <span>
91#include <source_location>
92#include <version>
93#if __cpp_impl_coroutine
94# include <coroutine>
95#endif
96#endif
97
98#if __cplusplus > 202002L
99#include <expected>
100#include <stdatomic.h>
101#endif
102
103#if _GLIBCXX_HOSTED
104// C
105#include <cctype>
106#include <cerrno>
107#include <cfloat>
108#include <climits>
109#include <clocale>
110#include <cmath>
111#include <csetjmp>
112#include <csignal>
113#include <cstdarg>
114#include <cstddef>
115#include <cstdio>
116#include <cstdlib>
117#include <cstring>
118#include <ctime>
119#include <cwchar>
120#include <cwctype>
121
122#if __cplusplus >= 201103L
123#include <cfenv>
124#include <cinttypes>
125#include <cstdint>
126#include <cuchar>
127#if __cplusplus < 201703L
128#include <ccomplex>
129#include <cstdalign>
130#include <cstdbool>
131#include <ctgmath>
132#endif
133#endif
134
135// C++
136#include <complex>
137#include <deque>
138#include <exception>
139#include <fstream>
140#include <functional>
141#include <iomanip>
142#include <ios>
143#include <iosfwd>
144#include <iostream>
145#include <istream>
146#include <iterator>
147#include <limits>
148#include <list>
149#include <locale>
150#include <map>
151#include <memory>
152#include <new>
153#include <numeric>
154#include <ostream>
155#include <queue>
156#include <set>
157#include <sstream>
158#include <stack>
159#include <stdexcept>
160#include <streambuf>
161#include <string>
162#include <typeinfo>
163#include <utility>
164#include <valarray>
165#include <vector>
166
167#if __cplusplus >= 201103L
168#include <array>
169#include <atomic>
170#include <chrono>
171#include <codecvt>
172#include <condition_variable>
173#include <forward_list>
174#include <future>
175#include <initializer_list>
176#include <mutex>
177#include <random>
178#include <ratio>
179#include <regex>
180#include <scoped_allocator>
181#include <system_error>
182#include <thread>
183#include <tuple>
184#include <typeindex>
185#include <type_traits>
186#include <unordered_map>
187#include <unordered_set>
188#endif
189
190#if __cplusplus >= 201402L
191#include <shared_mutex>
192#endif
193
194#if __cplusplus >= 201703L
195#include <any>
196#include <charconv>
197// #include <execution>
198#include <filesystem>
199#include <optional>
200#include <memory_resource>
201#include <variant>
202#endif
203
204#if __cplusplus >= 202002L
205#include <barrier>
206#include <bit>
207#include <compare>
208#include <concepts>
209#include <format>
210#include <latch>
211#include <numbers>
212#include <ranges>
213#include <span>
214#include <stop_token>
215#include <semaphore>
216#include <source_location>
217#include <syncstream>
218#include <version>
219#endif
220
221#if __cplusplus > 202002L
222#include <expected>
223#include <flat_map>
224#include <flat_set>
225#include <generator>
226#include <mdspan>
227#include <print>
228#include <spanstream>
229#include <stacktrace>
230#include <stdatomic.h>
231#include <stdfloat>
232#endif
233
234#if __cplusplus > 202302L
235#include <debugging>
236#include <inplace_vector>
237#include <text_encoding>
238#include <stdbit.h>
239#include <stdckdint.h>
240#endif
241
242#endif // HOSTED