Many developers have experienced their programs getting slower as new features are added or the data set of their programs grows. And they might have asked themselves "Why is this happening?"
In this talk, Slobodan discusses the approach and methodologies used in both learning and teaching C++. In the first part of the talk, Slobodan explains how to approach the topic of learning C++. Slobodan discusses possible answers to the following questions: what resources to use, what topics to learn and in which order to learn them, what makes a C++ backbone, what makes a solid C++ knowledge foundation, how to tackle the complexity, how to decide what is essential to a beginner in C++?
The...
C++20 has way more to offer than the big four concepts, ranges, modules, and coroutines.
When writing code we usually focus our attention on the happy paths - that’s where the interesting stuff happens. But there are also plenty of exciting things happening on the error handling flow, too. Although not universally loved/used, exceptions are a powerful mechanism of maneuvering execution on the unhappy path.
What special member functions should you declare or define in your class types? Are you always sure? Is defaulting or deleting a special member function the right thing to do, or does the Rule of Zero rule? Will we always have to consult Howard Hinnants table from ACCU 2014?
By now you probably know about ranges in C++20. You may have also watched a talk or two about how to create your own view.
But now, what do you do with that knowledge? How do you rangify your code?
If you find yourself using pre C++20 code because you don't know where to start using ranges, this talk is for you.
I'm going to rangify different code examples and try to show you how to think in ranges. I'm going to use the standard library and the range-v3 library.
Stack based exploitation has gotten all the fame, but many platform and compiler mitigations have made it very hard to exploit stack vulnerabilities. Heap based exploits are still very relevant, and since this is black magic for most developers I will here give an introduction to the field.
Core guidelines recommend passing objects to functions differently based on whether they are 'cheaply copyable'. Last year, Herb Sutter put a spotlight on the importance of simple and correct methodology for such argument passing.
Have you ever seen someone trying to build a house with their bare hands? Probably not. That's what tools are for. To make our lives easier. Are you sure you're using the best tools to help you develop your application?
Since the addition of view types to the C++ language (string_view in C++17 and span in C++20), APIs that follow the NOI (Non-Owning Interface) Idiom are a breeze to write, and fun to work with.
We will present the concept of C++ modules support for CMake as well as newly developped features that are potentially less known to the CMake users. We will also take the opportunity to describe which features of CMake are currently in development and how they will help future C++ developers.
This talk will present a comprehensive C++ solution how matrix types from a linear algebra library (Eigen, blaze, P1385) can be enriched with physical units (e.g. mpusz/units from P1935) to achieve more expressive and less error-prone code. In contrast to existing work on the topic, this approach works in all cases and not only when the units in a vector / matrix are uniform.
C++20 is the next big release of C++. It introduces a lot of changes that will have an impact or our programming style. But the real power becomes clear if you come up with examples that go a bit beyond the usual basic feature motivations.
If you had to describe the single most iconic feature of Qt, then signals and slots would undoubtedly come to mind for most. They are a foundational component of Qt that has been around for a very long time and forms the foundation for many of the design patterns that are common in Qt applications.
C++20 is more or less out the door. It is probably the biggest change to the language ever since. In this session, we will look into some changes that templates received with C++20. The biggest change is the introduction of Concepts.
We don’t stop there. We will also talk about improvements to CTAD and NTTP. Of course, we will also look into how templated lambdas work in C++20.