Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Rozdział2NowoczesnyC++
std::for_each(myArray.begin(),
myArray.end(),
myClosure);
return0;
}
Przykładzlistingu2-21przechwytujewyrażenielambdadoautomatycznietypowanej
zmiennej.Wyjściegenerowaneprzeztenkodpokazanejestnarysunku2-5.
Rysunek2-5.Wyjścietypuzfunkcjitypeidpoprzekazaniudomknięciadozmiennej
Rysunek2-5pokazujetypdomknięciaprzechowywanegowzmiennej
myClosure
zlis-
tingu2-21.Automatyczniewygenerowanywtymmiejscutypniejestszczególnieuży-
teczny;jednakjęzykC++udostępniametodęprzekazywaniadowolnegotypuobiektu,
którymożnawywoływaćjakfunkcję.Wnagłówkufunkcyjnymdostępnyjestszablon
function
-stanowionczęśćSTL.Szablontenprzyjmujesygnaturęfunkcjireprezento-
wanejprzezobiekt.Listing2-22pokazuje,jakwyglądatakikod.
Listing2-22.Przekazywaniedomknięciadofunkcji
#include<algorithm>
#include<array>
#include<cstdint>
#include<functional>
#include<iostream>
#include<typeinfo>
usingMyArray
=
std::array<uint32_t,5>;
47