#include <bits/stdc++.h>
#endif
-#include <ext/algorithm>
#if __cplusplus >= 201103L
# include <ext/aligned_buffer.h>
#endif
#include <ext/alloc_traits.h>
#include <ext/atomicity.h>
-#include <ext/bitmap_allocator.h>
#include <ext/cast.h>
+#include <ext/iterator>
+#include <ext/numeric_traits.h>
+#include <ext/pointer.h>
+#include <ext/typelist.h>
+#include <ext/type_traits.h>
+
+#if _GLIBCXX_HOSTED
+#include <ext/algorithm>
+#include <ext/bitmap_allocator.h>
#if __cplusplus >= 201103L
# include <ext/cmath>
#endif
#include <ext/debug_allocator.h>
#include <ext/extptr_allocator.h>
#include <ext/functional>
-#include <ext/iterator>
#include <ext/malloc_allocator.h>
#include <ext/memory>
#include <ext/mt_allocator.h>
#include <ext/new_allocator.h>
#include <ext/numeric>
-#include <ext/numeric_traits.h>
#include <ext/pod_char_traits.h>
-#include <ext/pointer.h>
#include <ext/pool_allocator.h>
#if __cplusplus >= 201103L
# include <ext/random>
#include <ext/stdio_filebuf.h>
#include <ext/stdio_sync_filebuf.h>
#include <ext/throw_allocator.h>
-#include <ext/typelist.h>
-#include <ext/type_traits.h>
#include <ext/vstring.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/priority_queue.hpp>
#include <ext/codecvt_specializations.h>
#include <ext/enc_filebuf.h>
#endif
+#endif // HOSTED
// 17.4.1.2 Headers
+// C
+#ifndef _GLIBCXX_NO_ASSERT
+#include <cassert>
+#endif
+#include <cctype>
+#include <cfloat>
+#include <ciso646>
+#include <climits>
+#include <csetjmp>
+#include <cstdarg>
+#include <cstddef>
+#include <cstdlib>
+
+#if __cplusplus >= 201103L
+#include <cstdint>
+#endif
+
+// C++
+// #include <bitset>
+// #include <complex>
+#include <algorithm>
+#include <bitset>
+#include <functional>
+#include <iterator>
+#include <limits>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <typeinfo>
+#include <utility>
+
+#if __cplusplus >= 201103L
+#include <array>
+#include <atomic>
+#include <initializer_list>
+#include <ratio>
+#include <scoped_allocator>
+#include <tuple>
+#include <typeindex>
+#include <type_traits>
+#endif
+
+#if __cplusplus >= 201402L
+#endif
+
+#if __cplusplus >= 201703L
+#include <any>
+#include <charconv>
+// #include <execution>
+#include <optional>
+#include <variant>
+#endif
+
+#if __cplusplus >= 202002L
+#include <bit>
+#include <compare>
+#include <concepts>
+#include <numbers>
+#include <ranges>
+#include <span>
+#include <source_location>
+#include <version>
+#endif
+
+#if __cplusplus > 202002L
+#include <expected>
+#include <stdatomic.h>
+#if __cpp_impl_coroutine
+# include <coroutine>
+#endif
+#endif
+
+
+#if _GLIBCXX_HOSTED
// C
#ifndef _GLIBCXX_NO_ASSERT
#include <cassert>
#endif
// C++
-#include <algorithm>
-#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <bit>
#include <compare>
#include <concepts>
-#if __cpp_impl_coroutine
-# include <coroutine>
-#endif
#include <latch>
#include <numbers>
#include <ranges>
#endif
#include <stdatomic.h>
#endif
+
+#endif // HOSTED