Agenda of Our Forthcoming Modern C++ Webinar
On July 2nd, we plan to run a webinar covering some of the features of Modern C++. Modern C++ is a really broad topic, so here is an outline of some of the things we are going to cover:
- Useful new C++ constructs, such as in-class variable initializers, delegating constructors and deleted/defaulted functions as well as raw strings,
- Uniform initialization, which simplifies the, ahem, initialization of various objects (e.g., obviating some constructor calls in function return values) and also helps us avoid C++’s most vexing parse. Also introduced is the concept of initializer lists.
- Automatic type deduction with auto and decltype keywords drastically reduce the amount of code one has to write, and also help us write powerful generic code.
- The override and final keywords help us control that we are, in fact, overriding a function, or preventing a function from being overridden.
- Lambdas allow us to easily define anonymous functions instead of building old-fashioned functors. They also happen to be more powerful in C++ than in C#/Java: you can, for example, control which variables get captured and how.
- Strongly typed enumerations prevent their elements from polluting their immediate declaration scope and offer additional safety.
Non-member begin()/end() functions simplify writing algorithms that can operate on different collections (e.g., array or
vector) and a range-based for loop, especially coupled with
auto, makes iterating collections a lot easier.
- constexpr and static asserts allow us to perform compile-time evaluations, whereas type traits let us intelligently constrain template parameters.
Variadic templates let you write functions with variable number of arguments of any types, resulting in neat things such as the super-useful
tiefunction that finally lets us extract tuple values in a single statement and without those ugly
Smart pointers have come a long way since the days of
auto_ptr. We’ll talk about the common types (
weak_ptr) and their uses.
Finally, we shall talk about rvalue references and move semantics that help us avoid needless creation of temporary objects. We’ll cover
std::moveand how to write your own move constructors and assignment operators.
So these are some of the things we are going to talk about in the webinar. If you haven’t registered for the webinar yet, please register here and we’ll see you on July 2nd! ■
Subscribe to Blog updates
5 Approaches to Remote C++ Development With CLion – Webinar Recording
The recording for our webinar, 5 Approaches to Remote C++ Development With CLion, with Matt Ellis and Timur Doumler, is now available for you to watch. Subscribe to our community newsletter to receive notifications about future webinars. Webinar agenda The webinar consists of the following parts: …
Join the Webinar – 5 Approaches to Remote C++ Development With CLion
Join us on Tuesday, July 26, 2022, 3:00 pm – 4:30 pm UTC (check other timezones) for our free live webinar, 5 Approaches to Remote C++ Development With CLion. REGISTER NOW and get a reminder, or join us on YouTube. In this webinar, JetBrains developer advocates Matt Ellis and Timur Doumler will show…
Testing Superpowers: Using CLion to Add Tests Easily – Webinar Recording
The recording of our webinar, Testing Superpowers: Using CLion to Add Tests Easily, with Clare Macrae, is now available. Subscribe to our community newsletter to receive notifications about future webinars. This webinar was produced in response to a question someone asked in Arne Mertz’s "Refac…
Live Webinar, Testing Superpowers: Using CLion to Add Tests Easily
CLion is great for refactoring C++ code to make it more maintainable. But as someone asked in Arne Mertz's "Refactoring C++ Code" webinar, "What can we do if we don’t have tests on the project and can’t easily check the changes introduced by refactorings?" In this webinar you wil…