System::Func class

Func class

Délégation de fonction. Ce type doit être alloué sur la pile et passé aux fonctions par valeur ou par référence. N’utilisez jamais la classe System::SmartPtr pour gérer les objets de ce type.

template<typename...>class Func : public System::MulticastDelegate<::System::Detail::FuncArgsReorderer<void(), Args...>::type>
ParamètreDescription
ArgsArguments d’appel, puis type de retour obligatoire.

Méthodes

MéthodeDescription
Func()Constructeur par défaut qui crée un Func nul.
Func(T&&)Constructeur qui crée l’objet Func et lui assigne une valeur (soit un rappel réel, soit nullptr).
Func(const Func&)Constructeur de copie.
Func(Func&&)Constructeur de déplacement.
operator=(const Func&)Assignation par copie.
operator=(Func&&)Assignation par déplacement.
~Func()Destructeur.

Remarques

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

// Cette fonction accepte une instance de la délégation System::Func en tant que paramètre.
void Print(int x, const System::Func<int, int> &func)
{
  std::cout << func(x) << std::endl;
}

int main()
{
  // Créez une instance de la délégation System::Func.
  auto func = static_cast<System::Func<int, int>>([](int x) -> int
  {
    return x * x;
  });

  // Passez l'instance créée comme argument de fonction.
  Print(1, func);
  Print(2, func);
  Print(3, func);

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

Voir aussi