// -*- C++ -*- Libstdc++ version details header. // Copyright (C) 2018-2026 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the // Free Software Foundation; either version 3, or (at your option) // any later version. // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // Under Section 7 of GPL version 3, you are granted additional // permissions described in the GCC Runtime Library Exception, version // 3.1, as published by the Free Software Foundation. // You should have received a copy of the GNU General Public License and // a copy of the GCC Runtime Library Exception along with this program; // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // . /** @file version * This is a Standard C++ Library header. You should `#include` this header * in your programs, rather than any of the `*.h` implementation files. * * The `` header defines feature test macros that describe the * supported features of the C++ standard library implementation being used. * The macros that are defined, and their values, depend on compiler flags * (usually `-std`, but others such as `-fcoroutines` and `-fno-aligned-new` * can affect them). * * These macros can be used to conditionally enable or disable code: * * ``` * #include * #ifdef __cpp_lib_expected * // std::expected is supported * #endif * ``` * * The macro values indicate different levels of support, for example * `__cpp_lib_expected == 202202L` means only the original feature set of * `std::expected` is supported, while `__cpp_lib_expected == 202211L` means * that the monadic functions such as `std::expected::and_then` are also * supported. * * The list of macros defined in `` and their meanings is given in * the C++ standard committee's SD-6 document: * https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations * * `` may also define non-standard, implementation-specific macros, * such as libstdc++'s `_GLIBCXX_RELEASE`. However, the standard feature * test macros should be preferred over depending on specific versions of any * particular implementation. * * The `` header was introduced in C++20, but libstdc++ provides it * unconditionally. As documented in SD-6, some macros correspond to features * in C++17 and earlier standards. */ #ifndef _GLIBCXX_VERSION_INCLUDED #define _GLIBCXX_VERSION_INCLUDED #ifdef _GLIBCXX_SYSHDR #pragma GCC system_header #endif #define __glibcxx_want_all #include #endif // _GLIBCXX_VERSION_INCLUDED