Warum definiert der C++-Standard nicht implizit ein Lambda, das nichts erfasst, standardmäßig als „statisch“?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Warum definiert der C++-Standard nicht implizit ein Lambda, das nichts erfasst, standardmäßig als „statisch“?

by Guest » 03 Jan 2025, 05:45

C++23 ermöglicht die Definition eines Lambda als statisch. d. h. wenn ein Lambda nichts erfasst, kann es als statisch definiert werden:

Code: Select all

// with superfluous argument `this`, less efficient.
auto fn1 = [](int a, int b) { return a + b; };

// no argument `this`, more efficient!
auto fn2 = [](int a, int b) static { return a + b; };
Ich frage mich nur:

Warum definiert der C++-Standard nicht implizit ein Lambda, das nichts erfasst, als statisch standardmäßig?

Top