|  | Class template functionBoost , The Boost C++ Libraries BoostBook Documentation Subset , Reference
Class template functionboost::function — A generalized function pointer that can be used for
    callbacks or wrapping function objects. Synopsistemplate<typename Signature> 
class function : public functionN<R, T1, T2, ..., TN> {
public:
  
  typedef R  result_type;         
  typedef T1 argument_type;         
  typedef T1 first_argument_type;   
  typedef T2 second_argument_type;  
  typedef T1 arg1_type;           
  typedef T2 arg2_type;           
     .
     .
     .
  typedef TN argN_type;           
  
  static const int arity = N;
  
  
  template<typename Args> 
  struct sig {
    
    typedef result_type type;
  };
  
  function();
  function(const functionN&);
  function(functionN&&);
  function(const function&);
  function(function&&);
  template<typename F> function(F);
  template<typename F, typename Allocator> function(F, Allocator);
  function& operator=(const functionN&);
  function& operator=(functionN&&);
  function& operator=(const function&);
  function& operator=(function&&);
  ~function();
  
  void swap(const function&);
  void clear();
  
  bool empty() const;
  operator safe_bool() const;
  bool operator!() const;
  
  template<typename Functor> Functor* target();
  template<typename Functor> const Functor* target() const;
  template<typename Functor> bool contains(const Functor&) const;
  const std::type_info& target_type() const;
  
  result_type operator()(arg1_type, arg2_type, ..., argN_type) const;
};
template<typename Signature> 
  void swap(function<Signature>&, function<Signature>&);
template<typename Signature, typename Functor> 
  bool operator==(const function<Signature>&, Functor);
template<typename Signature, typename Functor> 
  bool operator==(Functor, const function<Signature>&);
template<typename Signature, typename Functor> 
  bool operator==(const function<Signature>&, reference_wrapper<Functor>);
template<typename Signature, typename Functor> 
  bool operator==(reference_wrapper<Functor>, const function<Signature>&);
template<typename Signature1, typename Signature2> 
  void operator==(const function<Signature1>&, const function<Signature2>&);
template<typename Signature, typename Functor> 
  bool operator!=(const function<Signature>&, Functor);
template<typename Signature, typename Functor> 
  bool operator!=(Functor, const function<Signature>&);
template<typename Signature, typename Functor> 
  bool operator!=(const function<Signature>&, reference_wrapper<Functor>);
template<typename Signature, typename Functor> 
  bool operator!=(reference_wrapper<Functor>, const function<Signature>&);
template<typename Signature1, typename Signature2> 
  void operator!=(const function<Signature1>&, const function<Signature2>&);
DescriptionШаблон класса функция - тонкая обертка вокруг шаблонов классов функция0, функция1 и т.д. Он принимает тип функции с аргументами N и будет происходить из функцииN, мгновенных с аргументами, которые он получает. Семантика всех операций в шаблоне класса функция эквивалентна семантике основного объекта функцииN, хотя требуются дополнительные функции-члены для обеспечения надлежащего копирования и копирования объектов функции. 
functionpublic
       construct/copy/destruct
функция(); > >> >> >> > >> >> >> > 19>   | >>>> | >>> функция(функция& f);        >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Если аргумент имеет свой объект функции, выделенный на кепке, его буфер будет назначен на| >Потребования:29> | С++1 скомпилятор. |  *это, оставляя спор пустым. | Throws: | Не будет бросать, если только аргумент не имеет своего объекта функции, выделенного не на кучи и копирования цели fбросок. | >>>>>>>>>>>>>>>3>>>>>> |  |