System::Func class

Func class

Delegado de función. Este tipo debe ser asignado en la pila y pasado a funciones por valor o por referencia. Nunca use la clase System::SmartPtr para gestionar objetos de este tipo.

template<typename...>class Func : public System::MulticastDelegate<::System::Detail::FuncArgsReorderer<void(), Args...>::type>
ParámetroDescripción
ArgumentosArgumentos de llamada, luego tipo de retorno obligatorio.

Métodos

MétodoDescripción
Func()Constructor predeterminado que crea null-Func.
Func(T&&)Constructor que construye un objeto Func y asigna un valor (ya sea una devolución de llamada real o nullptr) a él.
Func(const Func&)Constructor de copia.
Func(Func&&)Constructor de movimiento.
operator=(const Func&)Asignación por copia.
operator=(Func&&)Asignación por movimiento.
~Func()Destructor.

Observaciones

#include "system/func.h"
#include <iostream>

// Esta función acepta una instancia del delegado System::Func como parámetro.
void Print(int x, const System::Func<int, int> &func)
{
  std::cout << func(x) << std::endl;
}

int main()
{
  // Cree una instancia del delegado System::Func.
  auto func = static_cast<System::Func<int, int>>([](int x) -> int
  {
    return x * x;
  });

  // Pase la instancia creada como argumento de la función.
  Print(1, func);
  Print(2, func);
  Print(3, func);

  return 0;
}
/*
This code example produces the following output:
1
4
9
*/

Ver también