System::Func klasse

Func class

Functie‑delegate. Dit type moet op de stack worden gealloceerd en aan functies worden doorgegeven per waarde of per referentie. Gebruik nooit de System::SmartPtr klasse om objecten van dit type te beheren.

template<typename...>class Func : public System::MulticastDelegate<::System::Detail::FuncArgsReorderer<void(), Args...>::type>
ParameterBeschrijving
ArgumentenAanroepargumenten, gevolgd door verplichte retourtype.

Methoden

MethodeBeschrijving
Func()Standaardconstructor die een null‑Func maakt.
Func(T&&)Constructor die een Func object maakt en er een waarde (ofwel een daadwerkelijke callback of nullptr) aan toewijst.
Func(const Func&)Copy-constructor.
Func(Func&&)Move-constructor.
operator=(const Func&)Kopie‑toewijzing.
operator=(Func&&)Verplaats‑toewijzing.
~Func()Destructor.

Opmerkingen

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

// Deze functie accepteert een instantie van de System::Func delegate als parameter.
void Print(int x, const System::Func<int, int> &func)
{
  std::cout << func(x) << std::endl;
}

int main()
{
  // Maak een instantie van de System::Func delegate.
  auto func = static_cast<System::Func<int, int>>([](int x) -> int
  {
    return x * x;
  });

  // Geef de gemaakte instantie door als functie‑argument.
  Print(1, func);
  Print(2, func);
  Print(3, func);

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

Zie ook