2 //===-------------------------- system_error ------------------------------===//
4 // The LLVM Compiler Infrastructure
6 // This file is dual licensed under the MIT and the University of Illinois Open
7 // Source Licenses. See LICENSE.TXT for details.
9 //===----------------------------------------------------------------------===//
11 #ifndef _LIBCPP_EXPERIMENTAL_SYSTEM_ERROR
12 #define _LIBCPP_EXPERIMENTAL_SYSTEM_ERROR
15 experimental/system_error synopsis
19 #include <system_error>
22 namespace experimental {
23 inline namespace fundamentals_v1 {
25 // See C++14 19.5, System error support
26 template <class T> constexpr bool is_error_code_enum_v
27 = is_error_code_enum<T>::value;
28 template <class T> constexpr bool is_error_condition_enum_v
29 = is_error_condition_enum<T>::value;
31 } // namespace fundamentals_v1
32 } // namespace experimental
37 #include <experimental/__config>
39 #if _LIBCPP_STD_VER > 11
41 #include <system_error>
43 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
44 #pragma GCC system_header
47 _LIBCPP_BEGIN_NAMESPACE_LFTS
49 #ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES
51 template <class _Tp> _LIBCPP_CONSTEXPR bool is_error_code_enum_v
52 = is_error_code_enum<_Tp>::value;
54 template <class _Tp> _LIBCPP_CONSTEXPR bool is_error_condition_enum_v
55 = is_error_condition_enum<_Tp>::value;
57 #endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */
59 _LIBCPP_END_NAMESPACE_LFTS
61 #endif /* _LIBCPP_STD_VER > 11 */
63 #endif /* _LIBCPP_EXPERIMENTAL_SYSTEM_ERROR */