176d0caaeSpatrick //===----------------------------------------------------------------------===// 276d0caaeSpatrick // 376d0caaeSpatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 476d0caaeSpatrick // See https://llvm.org/LICENSE.txt for license information. 576d0caaeSpatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 676d0caaeSpatrick // 776d0caaeSpatrick //===----------------------------------------------------------------------===// 876d0caaeSpatrick 976d0caaeSpatrick #ifndef _LIBCPP___FUNCTIONAL_UNARY_FUNCTION_H 1076d0caaeSpatrick #define _LIBCPP___FUNCTIONAL_UNARY_FUNCTION_H 1176d0caaeSpatrick 1276d0caaeSpatrick #include <__config> 1376d0caaeSpatrick 1476d0caaeSpatrick #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 1576d0caaeSpatrick # pragma GCC system_header 1676d0caaeSpatrick #endif 1776d0caaeSpatrick 1876d0caaeSpatrick _LIBCPP_BEGIN_NAMESPACE_STD 1976d0caaeSpatrick 20*4bdff4beSrobert #if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION) 21*4bdff4beSrobert 2276d0caaeSpatrick template <class _Arg, class _Result> 23*4bdff4beSrobert struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 unary_function 2476d0caaeSpatrick { 2576d0caaeSpatrick typedef _Arg argument_type; 2676d0caaeSpatrick typedef _Result result_type; 2776d0caaeSpatrick }; 2876d0caaeSpatrick 29*4bdff4beSrobert #endif // _LIBCPP_STD_VER <= 14 3076d0caaeSpatrick 31*4bdff4beSrobert template <class _Arg, class _Result> struct __unary_function_keep_layout_base { 32*4bdff4beSrobert #if _LIBCPP_STD_VER <= 17 || defined(_LIBCPP_ENABLE_CXX20_REMOVED_BINDER_TYPEDEFS) 33*4bdff4beSrobert using argument_type _LIBCPP_DEPRECATED_IN_CXX17 = _Arg; 34*4bdff4beSrobert using result_type _LIBCPP_DEPRECATED_IN_CXX17 = _Result; 35*4bdff4beSrobert #endif 36*4bdff4beSrobert }; 37*4bdff4beSrobert 38*4bdff4beSrobert #if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION) 39*4bdff4beSrobert _LIBCPP_DIAGNOSTIC_PUSH 40*4bdff4beSrobert _LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wdeprecated-declarations") 41*4bdff4beSrobert template <class _Arg, class _Result> 42*4bdff4beSrobert using __unary_function = unary_function<_Arg, _Result>; 43*4bdff4beSrobert _LIBCPP_DIAGNOSTIC_POP 44*4bdff4beSrobert #else 45*4bdff4beSrobert template <class _Arg, class _Result> 46*4bdff4beSrobert using __unary_function = __unary_function_keep_layout_base<_Arg, _Result>; 47*4bdff4beSrobert #endif 48*4bdff4beSrobert 49*4bdff4beSrobert _LIBCPP_END_NAMESPACE_STD 5076d0caaeSpatrick 5176d0caaeSpatrick #endif // _LIBCPP___FUNCTIONAL_UNARY_FUNCTION_H 52