#ifndef _LIBCPP___TYPE_TRAITS_STRIP_SIGNATURE_H
#define _LIBCPP___TYPE_TRAITS_STRIP_SIGNATURE_H
#include <__config>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif
#if _LIBCPP_STD_VER >= 17
_LIBCPP_BEGIN_NAMESPACE_STD
template <class _Fp>
struct __strip_signature;
# if defined(__cpp_static_call_operator) && __cpp_static_call_operator >= 202207L
__strip_signature<_Rp (*)(_Args...)>;
__strip_signature<_Rp (*)(_Args...) noexcept>;
# endif
__strip_signature<_Rp (_Gp::*)(_Ap...)>;
__strip_signature<_Rp (_Gp::*)(_Ap...) const>;
__strip_signature<_Rp (_Gp::*)(_Ap...) volatile>;
__strip_signature<_Rp (_Gp::*)(_Ap...) const volatile>;
__strip_signature<_Rp (_Gp::*)(_Ap...) &>;
__strip_signature<_Rp (_Gp::*)(_Ap...) const &>;
__strip_signature<_Rp (_Gp::*)(_Ap...) volatile &>;
__strip_signature<_Rp (_Gp::*)(_Ap...) const volatile &>;
__strip_signature<_Rp (_Gp::*)(_Ap...) noexcept>;
__strip_signature<_Rp (_Gp::*)(_Ap...) const noexcept>;
__strip_signature<_Rp (_Gp::*)(_Ap...) volatile noexcept>;
__strip_signature<_Rp (_Gp::*)(_Ap...) const volatile noexcept>;
__strip_signature<_Rp (_Gp::*)(_Ap...) & noexcept>;
__strip_signature<_Rp (_Gp::*)(_Ap...) const & noexcept>;
__strip_signature<_Rp (_Gp::*)(_Ap...) volatile & noexcept>;
__strip_signature<_Rp (_Gp::*)(_Ap...) const volatile & noexcept>;
_LIBCPP_END_NAMESPACE_STD
#endif
#endif