std::ptr_fun (3) - Linux Manuals

std::ptr_fun: std::ptr_fun


std::ptr_fun - std::ptr_fun


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.


f - pointer to a function to create a wrapper for

Return value

A function object wrapping f.




// 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),
  // C++11 alternatives:
  // std::not1(std::cref(isvowel)));
  // std::not1(std::function<bool(char)>(isvowel)));



  Hll, wrld!