1  // C++ includes used for precompiling -*- C++ -*-
       2  
       3  // Copyright (C) 2003-2023 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  #ifndef _GLIBCXX_NO_ASSERT
      33  #include <cassert>
      34  #endif
      35  #include <cctype>
      36  #include <cfloat>
      37  #include <ciso646>
      38  #include <climits>
      39  #include <csetjmp>
      40  #include <cstdarg>
      41  #include <cstddef>
      42  #include <cstdlib>
      43  
      44  #if __cplusplus >= 201103L
      45  #include <cstdint>
      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  #endif
      94  
      95  #if __cplusplus > 202002L
      96  #include <expected>
      97  #include <stdatomic.h>
      98  #if __cpp_impl_coroutine
      99  # include <coroutine>
     100  #endif
     101  #endif
     102  
     103  #if _GLIBCXX_HOSTED
     104  // C
     105  #ifndef _GLIBCXX_NO_ASSERT
     106  #include <cassert>
     107  #endif
     108  #include <cctype>
     109  #include <cerrno>
     110  #include <cfloat>
     111  #include <ciso646>
     112  #include <climits>
     113  #include <clocale>
     114  #include <cmath>
     115  #include <csetjmp>
     116  #include <csignal>
     117  #include <cstdarg>
     118  #include <cstddef>
     119  #include <cstdio>
     120  #include <cstdlib>
     121  #include <cstring>
     122  #include <ctime>
     123  #include <cwchar>
     124  #include <cwctype>
     125  
     126  #if __cplusplus >= 201103L
     127  #include <ccomplex>
     128  #include <cfenv>
     129  #include <cinttypes>
     130  #include <cstdalign>
     131  #include <cstdbool>
     132  #include <cstdint>
     133  #include <ctgmath>
     134  #include <cuchar>
     135  #endif
     136  
     137  // C++
     138  #include <complex>
     139  #include <deque>
     140  #include <exception>
     141  #include <fstream>
     142  #include <functional>
     143  #include <iomanip>
     144  #include <ios>
     145  #include <iosfwd>
     146  #include <iostream>
     147  #include <istream>
     148  #include <iterator>
     149  #include <limits>
     150  #include <list>
     151  #include <locale>
     152  #include <map>
     153  #include <memory>
     154  #include <new>
     155  #include <numeric>
     156  #include <ostream>
     157  #include <queue>
     158  #include <set>
     159  #include <sstream>
     160  #include <stack>
     161  #include <stdexcept>
     162  #include <streambuf>
     163  #include <string>
     164  #include <typeinfo>
     165  #include <utility>
     166  #include <valarray>
     167  #include <vector>
     168  
     169  #if __cplusplus >= 201103L
     170  #include <array>
     171  #include <atomic>
     172  #include <chrono>
     173  #include <codecvt>
     174  #include <condition_variable>
     175  #include <forward_list>
     176  #include <future>
     177  #include <initializer_list>
     178  #include <mutex>
     179  #include <random>
     180  #include <ratio>
     181  #include <regex>
     182  #include <scoped_allocator>
     183  #include <system_error>
     184  #include <thread>
     185  #include <tuple>
     186  #include <typeindex>
     187  #include <type_traits>
     188  #include <unordered_map>
     189  #include <unordered_set>
     190  #endif
     191  
     192  #if __cplusplus >= 201402L
     193  #include <shared_mutex>
     194  #endif
     195  
     196  #if __cplusplus >= 201703L
     197  #include <any>
     198  #include <charconv>
     199  // #include <execution>
     200  #include <filesystem>
     201  #include <optional>
     202  #include <memory_resource>
     203  #include <variant>
     204  #endif
     205  
     206  #if __cplusplus >= 202002L
     207  #include <barrier>
     208  #include <bit>
     209  #include <compare>
     210  #include <concepts>
     211  #include <format>
     212  #include <latch>
     213  #include <numbers>
     214  #include <ranges>
     215  #include <span>
     216  #include <stop_token>
     217  #include <semaphore>
     218  #include <source_location>
     219  #include <syncstream>
     220  #include <version>
     221  #endif
     222  
     223  #if __cplusplus > 202002L
     224  #include <expected>
     225  #include <spanstream>
     226  #if __has_include(<stacktrace>)
     227  # include <stacktrace>
     228  #endif
     229  #include <stdatomic.h>
     230  #include <stdfloat>
     231  #endif
     232  
     233  #endif // HOSTED