// -*- C++ -*-
//===-------------------------- system_error ------------------------------===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#ifndef _LIBCPP_EXPERIMENTAL_SYSTEM_ERROR
#define _LIBCPP_EXPERIMENTAL_SYSTEM_ERROR

/**
    experimental/system_error synopsis

// C++1y

#include <system_error>

namespace std {
namespace experimental {
inline namespace fundamentals_v1 {

  // See C++14 19.5, System error support
  template <class T> constexpr bool is_error_code_enum_v
    = is_error_code_enum<T>::value;
  template <class T> constexpr bool is_error_condition_enum_v
    = is_error_condition_enum<T>::value;

} // namespace fundamentals_v1
} // namespace experimental
} // namespace std

*/

#include <experimental/__config>

#if _LIBCPP_STD_VER > 11

#include <system_error>

#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
#endif

_LIBCPP_BEGIN_NAMESPACE_LFTS

#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES

template <class _Tp> _LIBCPP_CONSTEXPR bool is_error_code_enum_v
    = is_error_code_enum<_Tp>::value;

template <class _Tp> _LIBCPP_CONSTEXPR bool is_error_condition_enum_v
    = is_error_condition_enum<_Tp>::value;

#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */

_LIBCPP_END_NAMESPACE_LFTS

#endif /* _LIBCPP_STD_VER > 11 */

#endif /* _LIBCPP_EXPERIMENTAL_SYSTEM_ERROR */
