Line data Source code
1 : //===----------------------------------------------------------------------===//
2 : //
3 : // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 : // See https://llvm.org/LICENSE.txt for license information.
5 : // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 : //
7 : //===----------------------------------------------------------------------===//
8 :
9 : #ifndef _LIBCPP___TYPE_TRAITS_IS_CONSTANT_EVALUATED_H
10 : #define _LIBCPP___TYPE_TRAITS_IS_CONSTANT_EVALUATED_H
11 :
12 : #include <__config>
13 :
14 : #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
15 : # pragma GCC system_header
16 : #endif
17 :
18 : _LIBCPP_BEGIN_NAMESPACE_STD
19 :
20 : #if _LIBCPP_STD_VER > 17
21 : _LIBCPP_INLINE_VISIBILITY
22 : inline constexpr bool is_constant_evaluated() noexcept {
23 : return __builtin_is_constant_evaluated();
24 : }
25 : #endif
26 :
27 : _LIBCPP_HIDE_FROM_ABI inline _LIBCPP_CONSTEXPR
28 230631 : bool __libcpp_is_constant_evaluated() _NOEXCEPT { return __builtin_is_constant_evaluated(); }
29 :
30 : _LIBCPP_END_NAMESPACE_STD
31 :
32 : #endif // _LIBCPP___TYPE_TRAITS_IS_CONSTANT_EVALUATED_H
|