Zaawansowane CPP/Ćwiczenia 11: Funktory: Różnice pomiędzy wersjami
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. |
− | |||
'''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)
.