All About Lambda Functions in C++ (From C++11 to C++17)

Lambda functions are quite an intuitive concept of Modern C++ introduced in C++11, so there are already tons of articles on lambda function tutorials over the internet. But still, there are some untold things (like IIFE, types of lambda, etc.) left, which nobody talks about. Therefore, here I am to not only show you lambda function in C++, but we'll also cover how it works internally and other aspects of Lambda.

The title of this article is a bit misleading. Because lambda doesn't always synthesize to function pointer. It's an expression (precisely unique closure). But I have kept it that way for simplicity. So from now on, I will use lambda function and expression interchangeably.

What Exactly Nullptr Is in C++?

The answer to "What exactly nullptr is in C++?" would be a piece of cake for experienced C++ programmers and for those who are aware of Modern C++ (i.e. keyword). But nullptr is more than just a keyword in C++, and to explain that, I have written this article. But, before I jump into it, we will see issues with NULL. Then, we'll dive into the unsophisticated implementation of  nullptr and some use-cases of nullptr.

Note: This article is more or less the same thing which you can find here, here, and in nullptr proposal(N2431) but with a more organized and simplified explanation.