Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::ptr_fun

      From cppreference.com
      <cpp‎ |utility‎ |functional
       
       
      Utilities library
       
      Function objects
      Function invocation
      (C++17)(C++23)
      Identity function object
      (C++20)
      Old binders and adaptors
      (until C++17*)
      (until C++17*)
      ptr_fun
      (until C++17*)
      (until C++17*)  
      (until C++17*)
      (until C++17*)(until C++17*)(until C++17*)(until C++17*)
      (until C++20*)
      (until C++20*)
      (until C++17*)(until C++17*)
      (until C++17*)(until C++17*)

      (until C++17*)
      (until C++17*)(until C++17*)(until C++17*)(until C++17*)
      (until C++20*)
      (until C++20*)
       
      Defined in header<functional>
      template<class Arg,class Result>

      std::pointer_to_unary_function<Arg,Result>

          ptr_fun( Result(*f)(Arg));
      (1)(deprecated in C++11)
      (removed in C++17)
      template<class Arg1,class Arg2,class Result>

      std::pointer_to_binary_function<Arg1,Arg2,Result>

          ptr_fun( Result(*f)(Arg1, Arg2));
      (2)(deprecated in C++11)
      (removed in C++17)

      Creates a function wrapper object (eitherstd::pointer_to_unary_function orstd::pointer_to_binary_function), deducing the target type from the template arguments.

      1) Effectively callsstd::pointer_to_unary_function<Arg,Result>(f).
      2) Effectively callsstd::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 generalstd::function andstd::ref, both of which create callable adaptor-compatible function objects from plain functions.

      Contents

      [edit]Parameters

      f - pointer to a function to create a wrapper for

      [edit]Return value

      A function object wrappingf.

      [edit]Exceptions

      May throw implementation-defined exceptions.

      [edit]Example

      Run this code
      #include <algorithm>#include <functional>#include <iostream>#include <string_view> constexprbool is_vowel(char c){returnstd::string_view{"aeoiuAEIOU"}.find(c)!=std::string_view::npos;} int main(){std::string_view s="Hello, world!";    std::ranges::copy_if(s,std::ostreambuf_iterator<char>(std::cout),std::not1(std::ptr_fun(is_vowel)));#if 0// C++11 alternatives:std::not1(std::cref(is_vowel)));std::not1(std::function<bool(char)>(is_vowel)));[](char c){return!is_vowel(c);});// C++17 alternatives:std::not_fn(is_vowel));#endif}

      Output:

      Hll, wrld!

      [edit]See also

      (C++11)
      copyable wrapper of any copy constructible callable object
      (class template)[edit]
      move-only wrapper of any callable object that supports qualifiers in a given call signature
      (class template)[edit]
      (C++17)(C++23)
      invokes anyCallable object with given argumentsand possibility to specify return type(since C++23)
      (function template)[edit]
      (C++17)
      creates a function object that returns the complement of the result of the function object it holds
      (function template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/functional/ptr_fun&oldid=152028"

      [8]ページ先頭

      ©2009-2025 Movatter.jp