|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in header <functional> | ||
template<class Arg,class Result> std::pointer_to_unary_function<Arg,Result> | (1) | (deprecated in C++11) (removed in C++17) |
template<class Arg1,class Arg2,class Result> std::pointer_to_binary_function<Arg1,Arg2,Result> | (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.
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 |
| f | - | pointer to a function to create a wrapper for |
A function object wrappingf.
May throw implementation-defined exceptions.
#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!
(C++11) | copyable wrapper of any copy constructible callable object (class template)[edit] |
(C++23) | 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] |