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?
C++23 ermöglicht die Definition eines Lambda als statisch. d. h. wenn ein Lambda nichts erfasst, kann es als statisch definiert werden:
[code]// 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; };
[/code]
Ich frage mich nur:
Warum definiert der C++-Standard nicht implizit ein Lambda, das nichts erfasst, als statisch standardmäßig?