Innehållsförteckning:

Vad är en C++ lambda?
Vad är en C++ lambda?

Video: Vad är en C++ lambda?

Video: Vad är en C++ lambda?
Video: C++ Lambda och Algoritmer 2024, April
Anonim

I C++11 och senare, a lambda uttryck - ofta kallat a lambda -är ett bekvämt sätt att definiera ett anonymt funktionsobjekt (en stängning) precis på den plats där det anropas eller skickas som ett argument till en funktion.

Med avseende på detta, vilken typ är Lambda C++?

[C++11: 5,1. 2/3]: Den typ av lambda -uttryck (som också är typ av stängningsobjektet) är en unik, icke namngiven icke-unionsklass typ - kallade stängningen typ - vars egenskaper beskrivs nedan. Den här klassen typ är inte ett aggregat (8.5.

Dessutom, varför behöver vi lambda-uttryck i C++? C++ introducerade funktionsobjekt eller funktorer. Funktioner är klasser som överbelasta operatören(). Andra programmeringsspråk som Haskell, C#, Erlang eller F# möjliggör funktionsdefinitioner precis där de används. Dessa är känd som lambda uttryck eftersom dess syntax är inspireras av lambda kalkyl.

Frågan är också, hur klarar man en lambdafunktion i C++?

3 sätt att skicka en lambda som argument till en funktion:

  1. Använder std::funktion för att deklarera ett lambdaobjekt. void lambdaExample1()
  2. Använder typedef för att deklarera en funktionstyp och tilldela den en lambda-funktion. void lambdaExample2()
  3. Använder struct för att deklarera en lambda.

Vad är en lambda-stängning?

A lambda är i huvudsak en funktion som definieras inline snarare än standardmetoden för att deklarera funktioner. Lambdas kan ofta skickas runt som föremål. A stängning är en funktion som omsluter sitt omgivande tillstånd genom att referera till fält utanför kroppen.