Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::unary_function

      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
      unary_function
      (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*)
      (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<typename ArgumentType,typename ResultType>
      struct unary_function;
      (deprecated in C++11)
      (removed in C++17)

      std::unary_function is a base class for creating function objects with one argument.

      std::unary_function does not defineoperator(); it is expected that derived classes will define this.std::unary_function provides only two types -argument_type andresult_type - defined by the template parameters.

      Some standard library function object adaptors, such asstd::not1, require the function objects they adapt to have certain types defined;std::not1 requires the function object being adapted to have a type namedargument_type. Deriving function objects that take one argument fromstd::unary_function is an easy way to make them compatible with those adaptors.

      std::unary_function is deprecated in C++11.

      [edit]Member types

      Type Definition
      argument_typeArgumentType
      result_typeResultType

      [edit]Example

      Run this code
      #include <algorithm>#include <functional>#include <iostream>#include <vector> struct less_than_7: std::unary_function<int,bool>{bool operator()(int i)const{return i<7;}}; int main(){std::vector<int> v(10,7);    v[0]= v[1]= v[2]=6; std::cout<<std::count_if(v.begin(), v.end(),std::not1(less_than_7())); // C++11 solution:// Cast to std::function<bool (int)> somehow - even with a lambda// std::cout << std::count_if(v.begin(), v.end(),//     std::not1(std::function<bool (int)>([](int i) { return i < 7; })));}

      Output:

      7

      [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]
      (deprecated in C++11)(removed in C++17)
      creates an adaptor-compatible function object wrapper from a pointer to function
      (function template)[edit]
      (deprecated in C++11)(removed in C++17)
      adaptor-compatible wrapper for a pointer to unary function
      (class template)[edit]
      (deprecated in C++11)(removed in C++17)
      adaptor-compatible binary function base class
      (class template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/functional/unary_function&oldid=153297"

      [8]ページ先頭

      ©2009-2025 Movatter.jp