Zaawansowane CPP/Ćwiczenia 11: Funktory: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 13: | Linia 13: | ||
Rozszerz powyższy adapter tak, aby | Rozszerz powyższy adapter tak, aby | ||
działał również dla jedno lub dwuargumentowych funkcji bez konieczności ich opakowywania. | |||
}} | }} | ||
{{cwiczenie|4|| | {{cwiczenie|4|| |
Wersja z 14:46, 12 wrz 2006
Ćwiczenie 1
Zaimplementuj adapter compose_f_gx_hy
realizujący złożenie dwuargumentowe .
Ćwiczenie 2
Korzystając z klasy functor_traits
zaimplementuj adpter bind1st
który bedzie działał zarówno dla
jedno i dwuargumentowych funktorów.
Ćwiczenie 3
Rozszerz powyższy adapter tak, aby działał również dla jedno lub dwuargumentowych funkcji bez konieczności ich opakowywania.
Ćwiczenie 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.
Ćwiczenie 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)
.