System::Func class

Func class

Funktionsdelegat. Denna typ bör allokeras på stacken och skickas till funktioner som värde eller referens. Använd aldrig klassen System::SmartPtr för att hantera objekt av denna typ.

template<typename...>class Func : public System::MulticastDelegate<::System::Detail::FuncArgsReorderer<void(), Args...>::type>
ParameterBeskrivning
ArgumentAnropsargument, följt av obligatorisk returtyp.

Metoder

MetodBeskrivning
Func()Standardkonstruktor som skapar null-Func.
Func(T&&)Konstruktor som skapar ett Func-objekt och tilldelar ett värde (antingen en faktisk återuppringning eller nullptr) till det.
Func(const Func&)Kopieringskonstruktor.
Func(Func&&)Flyttkonstruktor.
operator=(const Func&)Kopieringstilldelning.
operator=(Func&&)Flyttilldelning.
~Func()Destruktor.

Anmärkningar

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

// Denna funktion accepterar en instans av delegaten System::Func som en parameter.
void Print(int x, const System::Func<int, int> &func)
{
  std::cout << func(x) << std::endl;
}

int main()
{
  // Skapa en instans av delegaten System::Func.
  auto func = static_cast<System::Func<int, int>>([](int x) -> int
  {
    return x * x;
  });

  // Skicka den skapade instansen som ett funktionsargument.
  Print(1, func);
  Print(2, func);
  Print(3, func);

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

Se även