INHOUDSOPGAWE:

Wat is 'n C++ lambda?
Wat is 'n C++ lambda?

Video: Wat is 'n C++ lambda?

Video: Wat is 'n C++ lambda?
Video: Lambda expressions in modern C++ (in depth step by step tutorial) 2024, Mei
Anonim

In C++11 en later, a lambda uitdrukking - dikwels genoem a lambda -is 'n gerieflike manier om 'n anonieme funksie-objek ('n sluiting) te definieer op die plek waar dit opgeroep of deurgegee word as 'n argument na 'n funksie.

Met betrekking tot hierdie, watter tipe is Lambda C++?

[C++11: 5.1. 2/3]: Die tipe van die lambda -uitdrukking (wat ook die tipe van die sluitingsvoorwerp) is 'n unieke, naamlose nie-vakbondklas tipe - die sluiting genoem tipe - wie se eienskappe hieronder beskryf word. Hierdie klas tipe is nie 'n totaal nie (8.5.

Verder, hoekom het ons lambda-uitdrukkings in C++ nodig? C++ ingevoer funksie voorwerpe, of funktors. Funkteurs is klasse wat die operateur() oorlaai. Ander programmeertale soos Haskell, C#, Erlang of F# aktiveer funksiedefinisies net waar hulle gebruik word. Hierdie is bekend as lambda uitdrukkings want die sintaksis daarvan is geïnspireer in lambda calculus.

Die vraag is ook, hoe slaag jy 'n lambda-funksie in C++?

3 maniere om 'n lambda as argument na 'n funksie oor te dra:

  1. Gebruik std::funksie om 'n lambda-voorwerp te verklaar. nietig lambdaVoorbeeld1()
  2. Gebruik typedef om 'n funksietipe te verklaar en 'n lambda-funksie daaraan toe te ken. nietig lambdaVoorbeeld2()
  3. Gebruik struct om 'n lambda te verklaar.

Wat is 'n lambda-sluiting?

A lambda is in wese 'n funksie wat inlyn gedefinieer word eerder as die standaardmetode om funksies te verklaar. Lambdas kan gereeld as voorwerpe rondgestuur word. A sluiting is 'n funksie wat sy omringende toestand insluit deur velde buite sy liggaam te verwys.