104f01a2bSLouis Dionne // -*- C++ -*- 204f01a2bSLouis Dionne //===----------------------------------------------------------------------===// 304f01a2bSLouis Dionne // 404f01a2bSLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 504f01a2bSLouis Dionne // See https://llvm.org/LICENSE.txt for license information. 604f01a2bSLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 704f01a2bSLouis Dionne // 804f01a2bSLouis Dionne //===----------------------------------------------------------------------===// 904f01a2bSLouis Dionne 1004f01a2bSLouis Dionne #ifndef _LIBCPP___CONFIGURATION_LANGUAGE_H 1104f01a2bSLouis Dionne #define _LIBCPP___CONFIGURATION_LANGUAGE_H 1204f01a2bSLouis Dionne 1304f01a2bSLouis Dionne #include <__config_site> 1404f01a2bSLouis Dionne 1504f01a2bSLouis Dionne #ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER 1604f01a2bSLouis Dionne # pragma GCC system_header 1704f01a2bSLouis Dionne #endif 1804f01a2bSLouis Dionne 1904f01a2bSLouis Dionne // NOLINTBEGIN(libcpp-cpp-version-check) 2004f01a2bSLouis Dionne #ifdef __cplusplus 2104f01a2bSLouis Dionne # if __cplusplus <= 201103L 2204f01a2bSLouis Dionne # define _LIBCPP_STD_VER 11 2304f01a2bSLouis Dionne # elif __cplusplus <= 201402L 2404f01a2bSLouis Dionne # define _LIBCPP_STD_VER 14 2504f01a2bSLouis Dionne # elif __cplusplus <= 201703L 2604f01a2bSLouis Dionne # define _LIBCPP_STD_VER 17 2704f01a2bSLouis Dionne # elif __cplusplus <= 202002L 2804f01a2bSLouis Dionne # define _LIBCPP_STD_VER 20 2904f01a2bSLouis Dionne # elif __cplusplus <= 202302L 3004f01a2bSLouis Dionne # define _LIBCPP_STD_VER 23 3104f01a2bSLouis Dionne # else 3204f01a2bSLouis Dionne // Expected release year of the next C++ standard 3304f01a2bSLouis Dionne # define _LIBCPP_STD_VER 26 3404f01a2bSLouis Dionne # endif 3504f01a2bSLouis Dionne #endif // __cplusplus 3604f01a2bSLouis Dionne // NOLINTEND(libcpp-cpp-version-check) 3704f01a2bSLouis Dionne 38*ba87515fSNikolas Klauser #if defined(__cpp_rtti) && __cpp_rtti >= 199711L 39*ba87515fSNikolas Klauser # define _LIBCPP_HAS_RTTI 1 40*ba87515fSNikolas Klauser #else 41*ba87515fSNikolas Klauser # define _LIBCPP_HAS_RTTI 0 4204f01a2bSLouis Dionne #endif 4304f01a2bSLouis Dionne 44*ba87515fSNikolas Klauser #if defined(__cpp_exceptions) && __cpp_exceptions >= 199711L 45*ba87515fSNikolas Klauser # define _LIBCPP_HAS_EXCEPTIONS 1 46*ba87515fSNikolas Klauser #else 47*ba87515fSNikolas Klauser # define _LIBCPP_HAS_EXCEPTIONS 0 4804f01a2bSLouis Dionne #endif 4904f01a2bSLouis Dionne 5004f01a2bSLouis Dionne #endif // _LIBCPP___CONFIGURATION_LANGUAGE_H 51