brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · eb0e767 Raw
44 lines · c
1// -*- C++ -*-2//===----------------------------------------------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef _LIBCPP___FUNCTIONAL_POINTER_TO_BINARY_FUNCTION_H11#define _LIBCPP___FUNCTIONAL_POINTER_TO_BINARY_FUNCTION_H12 13#include <__config>14#include <__functional/binary_function.h>15 16#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)17#  pragma GCC system_header18#endif19 20_LIBCPP_BEGIN_NAMESPACE_STD21 22#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS)23 24template <class _Arg1, class _Arg2, class _Result>25class _LIBCPP_DEPRECATED_IN_CXX11 pointer_to_binary_function : public __binary_function<_Arg1, _Arg2, _Result> {26  _Result (*__f_)(_Arg1, _Arg2);27 28public:29  _LIBCPP_HIDE_FROM_ABI explicit pointer_to_binary_function(_Result (*__f)(_Arg1, _Arg2)) : __f_(__f) {}30  _LIBCPP_HIDE_FROM_ABI _Result operator()(_Arg1 __x, _Arg2 __y) const { return __f_(__x, __y); }31};32 33template <class _Arg1, class _Arg2, class _Result>34_LIBCPP_DEPRECATED_IN_CXX11 inline _LIBCPP_HIDE_FROM_ABI pointer_to_binary_function<_Arg1, _Arg2, _Result>35ptr_fun(_Result (*__f)(_Arg1, _Arg2)) {36  return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__f);37}38 39#endif40 41_LIBCPP_END_NAMESPACE_STD42 43#endif // _LIBCPP___FUNCTIONAL_POINTER_TO_BINARY_FUNCTION_H44