Back to Basics: Lambdas - Nicolai Josuttis - CppCon 2021

preview_player
Показать описание
---
Lambdas, introduced with C++11, are used everywhere in modern C++ programming. While their use looks pretty straightforward, you should know about some details that help you to benefit from their full power.
This session teaches lambdas in detail. Based on the basic principles, it motivates and explains why lambdas are more powerful than functions and how to use them to benefit from that.

---
Nicolai Josuttis

He has been an active member of the C++ standards committee for more than 20 years.

---

Рекомендации по теме
Комментарии
Автор

Man I love this guy's talks/tutorials. Very simple very clear.

chudchadanstud
Автор

Nice, so many tiny details I didn't know or was confused about.

linuxgaminginfullhdfps
Автор

clear, clean and powerful. very good tutorial, easy to understand in a few minutes. looking forward to see next.

sambatgoson
Автор

Thank you for the talk, I read many things about lambdas in C++, but all the papers I had read don't explain the internals (class object with () operator) and without that it just looks like magic and you don't get all the implications of lambdas. So big thanks you for the talk.

FORTDavid
Автор

I recall using the STL long before C++11, back in the late 90s.

neilharvey
Автор

Explained well. Thanks for the quality content.

irfanulhaq
Автор

13:13 "Case-insensitive sorting is always a little bit tricky in C++" Just to hammer his point home, passing a raw char directly to std::toupper as he does in the slideware is actually wrong... you have to cast it to unsigned char before passing to std::toupper or you can run into undefined behavior on implementations where char is signed. But, you know, slide code and all...

flamewingsonic
Автор

Where can I get the slides of the talk?

gunjankumar
Автор

Great talk!!! if i can get pdf file somewhere?

guoliangwang
Автор

Easy to understanding . Looking for next to meet.

shailendrarajput
Автор

Very good as usual Nicolai. Slide 10: The "toupper" lambda should take "unsigned chars" to avoid UB in <cctype> ? Same on slide 11...

oschonrock
Автор

I think the statement" My life would be better if my co-workers knew more C++" is true for everyone...

skeleton_craftGaming
Автор

I have yet to remove the confusion between lambdas vs. generics vs. templates

rahultandon
Автор

Thanks for the session. Neatly explained..

gowrishankars
Автор

In slide 11 we have two strings while lambda argument is char!

hossamalzomor
Автор

I appreciate how he owns the fact that C++ is partially his fault. Self awareness majority of the commitee lacks.

CuriousCauliflowerX
Автор

Working through this in an IDE and the ranges lexicographical sort on slide 11 was vexing me for a while, but got it working. Slide code error... he's missed a semi-colon out after the return statement. If you amend the example to get it as the following, it will work:

std::ranges::sort(
v2, // Range to sort
[](const std::string& s1, const std::string& s2) { // Sort criterion
auto toUpper = [](char c) { return std::toupper(c); };
return
// String as 1st range
String as 2nd range
std::less<char>{}, // Compare criterion
toUpper, // Projection for s1 element
toUpper); // Projection for s2 element
}); // End of sort statement

chiefsittingstill
Автор

I couldn't understand the problem with having a function, why Lambdas? rewriting again and again may cause errors to creep in. testability.. it invalidates all basis of having a modular design.

Sajal
Автор

Lambdas are cool-n-all, but very difficult to unit test. Apart from tiny lambdas to std algorithms within testable functions, I still prefer explicit function objects and function templates because of this.

meowsqueak
Автор

Awesome.

Catching up with JavaScript! 😂

TesterAnimal