C++/Funkcje anonimowe: Różnice pomiędzy wersjami

brak opisu edycji
(Poprawienie literówki)
Nie podano opisu zmian
 
# bloku kodu.
 
<sourcesyntaxhighlight lang="cpp">
[domknięcie](parametry) -> typ zwracany {
kod
}
</syntaxhighlight>
</source>
 
'''Domknięcie''' określa jakie zmienne i w jakim trybie są dostępne bezpośrednio w danej funkcji. W najprostszym przypadku domknięcie może być puste, wówczas funkcja nie ma dostępu do żadnych obiektów zdefiniowanych w zakresie, który ją zawiera. Najprościej można wskazać, że wszystkie obiekty są dostępne przez referencję, pisząc <tt>[&]</tt>; można również wskazać, że wszystkie dostępne są to kopie, <tt>[=]</tt>. Można też wyliczyć tylko te zmienne, które są rzeczywiście potrzebne, np. <tt>[x, y]</tt>. Zmienne domyślnie są dostępne tylko do odczytu, ale jeśli poprzedzimy je znakiem <tt>&</tt> zostaną przekazane przez referencję i będzie można je zmieniać.
'''Blok kodu''' może zawierać dowolne instrukcje, dostępne są w nim wszystkie obiekty zdefiniowane w domknięciu i na liście parametrów.
 
<sourcesyntaxhighlight lang="cpp" highlight="16-19">
#include <iostream>
#include <string>
std::cout << "napis = " << napis << '\n';
}
</syntaxhighlight>
</source>
 
Wynikiem będzie:
W kolejnym przykładzie '''funkcja anonimowa''' jest przypisywana do zmiennej i wielokrotnie wywoływana w kodzie funkcji.
 
<sourcesyntaxhighlight lang="cpp" highlight="7-11,13-15">
#include <iostream>
 
std::cout << "liczba wywołań = " << liczba_wywolan << '\n';
}
</syntaxhighlight>
</source>