std::ptr_fun (3) - Linux Man Pages

std::ptr_fun: std::ptr_fun

NAME

std::ptr_fun - std::ptr_fun

Synopsis


Defined in header <functional>
template< class Arg, class Result > (deprecated in C++11)
std::pointer_to_unary_function<Arg,Result> (1) (removed in C++17)
ptr_fun( Result (*f)(Arg) );
template< class Arg1, class Arg2, class Result > (deprecated in C++11)
std::pointer_to_binary_function<Arg1,Arg2,Result> (2) (removed in C++17)
ptr_fun( Result (*f)(Arg1, Arg2) );


Creates a function wrapper object (either std::pointer_to_unary_function or std::pointer_to_binary_function), deducing the target type from the template arguments.
1) Effectively calls std::pointer_to_unary_function<Arg,Result>(f).
2) Effectively calls std::pointer_to_binary_function<Arg1,Arg2,Result>(f).
This function and the related types are deprecated as of C++11 in favor of the more general std::function and std::ref, both of which create callable adapter-compatible function objects from plain functions.

Parameters


f - pointer to a function to create a wrapper for

Return value


A function object wrapping f.

Exceptions


(none)

Example


// Run this code


  #include <string>
  #include <iostream>
  #include <algorithm>
  #include <functional>


  bool isvowel(char c)
  {
      return std::string("aeoiuAEIOU").find(c) != std::string::npos;
  }


  int main()
  {
      std::string s = "Hello, world!";
      std::copy_if(s.begin(), s.end(), std::ostreambuf_iterator<char>(std::cout),
                   std::not1(std::ptr_fun(isvowel)));
  // C++11 alternatives:
  // std::not1(std::cref(isvowel)));
  // std::not1(std::function<bool(char)>(isvowel)));


  }

Output:


  Hll, wrld!