Zaawansowane CPP/Ćwiczenia 11: Funktory: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Linia 7: Linia 7:
  
 
'''Zadanie 3 '''  Rozszerz powyższy adapter tak, aby
 
'''Zadanie 3 '''  Rozszerz powyższy adapter tak, aby
działa  również dla jedno lub dwuargumentowych
+
działa  również dla jedno lub dwuargumentowych funkcji bez konieczności ich opakowywania.
  funkcji bez konieczności ich opakowywania.
 
  
 
'''Zadanie 4 '''  
 
'''Zadanie 4 '''  

Wersja z 09:33, 3 wrz 2006

Zadanie 1 Zaimplementuj adapter compose_f_gx_hy realizujący złożenie dwuargumentowe .

Zadanie 2 Korzystając z klasy functor_traits zaimplementuj adpter bind1st który bedzie działał zarówno dla jedno i dwuargumentowych funktorów.

Zadanie 3 Rozszerz powyższy adapter tak, aby działa również dla jedno lub dwuargumentowych funkcji bez konieczności ich opakowywania.

Zadanie 4

Zaimplementuj funktor impelemetujący, składanie funkcji poprzez wykonywanie ich po kolei:

 macro1(f1,f2)(x)

wykonuje f1(x);f2(x);. Wartości zwracane przez te funkcje są ignorowane. Podobnie dla funkcji macro2(f1,f2), która ma zwrócić funktor dwuargumentowy.

Zadanie 5

Zmodyfikuj powyższy szablon tak aby mogły być do niego przekazywane również funkcje bezargumentowe:

 int f();
void g(double);

macro1(f,g)(x);

spowdoduje wywołanie, f();g(x).