System::Func class

Func class

Delegate λειτουργίας. Αυτός ο τύπος θα πρέπει να κατανεμηθεί στη στοίβα και να περνιέται σε συναρτήσεις με τιμή ή με αναφορά. Ποτέ μην χρησιμοποιείτε την κλάση System::SmartPtr για τη διαχείριση αντικειμένων αυτού του τύπου.

template<typename...>class Func : public System::MulticastDelegate<::System::Detail::FuncArgsReorderer<void(), Args...>::type>
ParameterΠεριγραφή
ΠαράμετροιΠαράμετροι κλήσης, έπειτα υποχρεωτικός τύπος επιστροφής.

Μέθοδοι

ΜέθοδοςΠεριγραφή
Func()Προεπιλεγμένος κατασκευαστής που δημιουργεί null-Func.
Func(T&&)Κατασκευαστής που δημιουργεί το αντικείμενο Func και του αναθέτει τιμή (είτε πραγματική κλήση επιστροφής είτε nullptr).
Func(const Func&)Κατασκευαστής αντιγραφής.
Func(Func&&)Κατασκευαστής μετακίνησης.
operator=(const Func&)Αντιγραφή ανάθεσης.
operator=(Func&&)Μετακίνηση ανάθεσης.
~Func()Καταστροφέας.

Παρατηρήσεις

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

// Αυτή η συνάρτηση δέχεται μια παρουσία του αντικειμένου System::Func ως παράμετρο.
void Print(int x, const System::Func<int, int> &func)
{
  std::cout << func(x) << std::endl;
}

int main()
{
  // Δημιουργήστε μια παρουσία του αντικειμένου System::Func.
  auto func = static_cast<System::Func<int, int>>([](int x) -> int
  {
    return x * x;
  });

  // Περάστε την δημιουργημένη παρουσία ως όρισμα συνάρτησης.
  Print(1, func);
  Print(2, func);
  Print(3, func);

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

Δείτε επίσης