51 lines · c
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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef _LIBCPP___FUNCTIONAL_UNARY_FUNCTION_H10#define _LIBCPP___FUNCTIONAL_UNARY_FUNCTION_H11 12#include <__config>13 14#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)15# pragma GCC system_header16#endif17 18_LIBCPP_BEGIN_NAMESPACE_STD19 20#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION)21 22template <class _Arg, class _Result>23struct _LIBCPP_DEPRECATED_IN_CXX11 unary_function {24 typedef _Arg argument_type;25 typedef _Result result_type;26};27 28#endif // _LIBCPP_STD_VER <= 1429 30template <class _Arg, class _Result>31struct __unary_function_keep_layout_base {32#if _LIBCPP_STD_VER <= 17 || defined(_LIBCPP_ENABLE_CXX20_REMOVED_BINDER_TYPEDEFS)33 using argument_type _LIBCPP_DEPRECATED_IN_CXX17 = _Arg;34 using result_type _LIBCPP_DEPRECATED_IN_CXX17 = _Result;35#endif36};37 38#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION)39_LIBCPP_SUPPRESS_DEPRECATED_PUSH40template <class _Arg, class _Result>41using __unary_function _LIBCPP_NODEBUG = unary_function<_Arg, _Result>;42_LIBCPP_SUPPRESS_DEPRECATED_POP43#else44template <class _Arg, class _Result>45using __unary_function _LIBCPP_NODEBUG = __unary_function_keep_layout_base<_Arg, _Result>;46#endif47 48_LIBCPP_END_NAMESPACE_STD49 50#endif // _LIBCPP___FUNCTIONAL_UNARY_FUNCTION_H51