Sisukord:

Mis on C++ lambda?
Mis on C++ lambda?

Video: Mis on C++ lambda?

Video: Mis on C++ lambda?
Video: Lambda Part 1 - Unnamed function objects (closures) in C++ | Modern Cpp Series 2024, November
Anonim

C++11 ja uuemates versioonides a lambda väljend - nimetatakse sageli a lambda -on mugav viis anonüümse funktsiooniobjekti (sulguri) määratlemiseks otse kohas, kus see välja kutsutakse või funktsiooni argumendina edastatakse.

Mis tüüpi Lambda C++ sellega seoses on?

[C++11: 5,1. 2/3]: tüüp selle lambda -avaldis (mis on ka tüüp sulgemisobjekti kohta) on ainulaadne, nimetu mitteliitumine klass tüüp - kutsus sulgemist tüüp - mille omadusi kirjeldatakse allpool. See klass tüüp ei ole agregaat (8.5.

Lisaks, miks me vajame C++-s lambda-avaldisi? C++ kasutusele võetud funktsiooniobjektid ehk funktorid. Funktorid on klassid, mis koormavad operaatorit (). Teised programmeerimiskeeled, nagu Haskell, C#, Erlang või F#, võimaldavad funktsioonide määratlusi seal, kus neid kasutatakse. Need on tuntud kui lambda väljendid sest selle süntaks on sisse inspireeritud lambda arvutus.

Küsimus on ka selles, kuidas saate C++-s lambda-funktsiooni edasi anda?

3 võimalust lambda argumendina funktsioonile edastamiseks:

  1. Funktsiooni std:: kasutamine lambda-objekti deklareerimiseks. tühine lambdaNäide1()
  2. Typedefi kasutamine funktsiooni tüübi deklareerimiseks ja sellele lambda-funktsiooni määramiseks. tühine lambdaNäide2()
  3. Struktuuri kasutamine lambda deklareerimiseks.

Mis on lambda sulgur?

A lambda on sisuliselt funktsioon, mis on defineeritud pigem tekstisiseselt kui funktsioonide deklareerimise standardmeetod. lambdad võib sageli esemetena mööda saata. A sulgemine on funktsioon, mis piirab ümbritsevat olekut, viidates selle kehavälistele väljadele.