xref: /llvm-project/libcxx/include/__cxx03/__configuration/language.h (revision b9a2658a3e8bd13b0f9e7a8a440832a95b377216)
1e78f53d1SNikolas Klauser // -*- C++ -*-
2e78f53d1SNikolas Klauser //===----------------------------------------------------------------------===//
3e78f53d1SNikolas Klauser //
4e78f53d1SNikolas Klauser // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5e78f53d1SNikolas Klauser // See https://llvm.org/LICENSE.txt for license information.
6e78f53d1SNikolas Klauser // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7e78f53d1SNikolas Klauser //
8e78f53d1SNikolas Klauser //===----------------------------------------------------------------------===//
9e78f53d1SNikolas Klauser 
10ce777190SNikolas Klauser #ifndef _LIBCPP___CXX03___CONFIGURATION_LANGUAGE_H
11ce777190SNikolas Klauser #define _LIBCPP___CXX03___CONFIGURATION_LANGUAGE_H
12e78f53d1SNikolas Klauser 
13*b9a2658aSNikolas Klauser #include <__cxx03/__configuration/config_site_shim.h>
14e78f53d1SNikolas Klauser 
15e78f53d1SNikolas Klauser #ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER
16e78f53d1SNikolas Klauser #  pragma GCC system_header
17e78f53d1SNikolas Klauser #endif
18e78f53d1SNikolas Klauser 
19e78f53d1SNikolas Klauser // NOLINTBEGIN(libcpp-cpp-version-check)
20e78f53d1SNikolas Klauser #ifdef __cplusplus
21e78f53d1SNikolas Klauser #  if __cplusplus <= 201103L
22e78f53d1SNikolas Klauser #    define _LIBCPP_STD_VER 11
23e78f53d1SNikolas Klauser #  elif __cplusplus <= 201402L
24e78f53d1SNikolas Klauser #    define _LIBCPP_STD_VER 14
25e78f53d1SNikolas Klauser #  elif __cplusplus <= 201703L
26e78f53d1SNikolas Klauser #    define _LIBCPP_STD_VER 17
27e78f53d1SNikolas Klauser #  elif __cplusplus <= 202002L
28e78f53d1SNikolas Klauser #    define _LIBCPP_STD_VER 20
29e78f53d1SNikolas Klauser #  elif __cplusplus <= 202302L
30e78f53d1SNikolas Klauser #    define _LIBCPP_STD_VER 23
31e78f53d1SNikolas Klauser #  else
32e78f53d1SNikolas Klauser // Expected release year of the next C++ standard
33e78f53d1SNikolas Klauser #    define _LIBCPP_STD_VER 26
34e78f53d1SNikolas Klauser #  endif
35e78f53d1SNikolas Klauser #endif // __cplusplus
36e78f53d1SNikolas Klauser // NOLINTEND(libcpp-cpp-version-check)
37e78f53d1SNikolas Klauser 
38e78f53d1SNikolas Klauser #if !defined(__cpp_rtti) || __cpp_rtti < 199711L
39e78f53d1SNikolas Klauser #  define _LIBCPP_HAS_NO_RTTI
40e78f53d1SNikolas Klauser #endif
41e78f53d1SNikolas Klauser 
42e78f53d1SNikolas Klauser #if !defined(__cpp_exceptions) || __cpp_exceptions < 199711L
43e78f53d1SNikolas Klauser #  define _LIBCPP_HAS_NO_EXCEPTIONS
44e78f53d1SNikolas Klauser #endif
45e78f53d1SNikolas Klauser 
46ce777190SNikolas Klauser #endif // _LIBCPP___CXX03___CONFIGURATION_LANGUAGE_H
47