educative.io

Embedded Programming with Modern C++ (Rainer Grimm)


High Performance - Associative Containers In this lesson, we will learn about ordered and unordered associative containers. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5248264607629312). Safety-Critical Systems - Scoped Enumerations In this lesson, we will learn about Enumerations or Enums. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6240193545764864). High Performance - Template Arguments In this lesson, we will look at template arguments. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6705277401300992). Safety-Critical Systems - - Example In the follwoin example, we will go over the implementation of Enumerations. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6682146049622016). Several Tasks Simultaneously - - Exercises In this exercise, you will spot a data race and synchronize the code. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5860667787575296). Reduced Resources - Rvalue and Lvalue References In this lesson, we will discuss rvalue and lvalue references. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5969943264755712). Several Tasks Simultaneously - std::async This lesson offers an introduction to std::async, which is used in C++ for multithreading. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6388794179715072). Introduction - Myths An overview of myths and prejudices about C++ in embedded programming and what are the reasons behind them. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6015924815527936). Safety-Critical Systems - - Solution In this lesson, we will go over the solution to initializing containers using an initializer list. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6748310255697920). Introduction - What to Expect from the Course A shorthand guide for what to expect from this course. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4577252773724160). Introduction - Embedded Programming and C++ This lesson will talk about author's perspective on Embedded Programming with Modern C++ View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5191257049530368). Introduction - Technical Report on C++ Performance In this lesson, we will discuss the C++ features, their overhead, and usage in light of Technical Report on C++ Performance. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6617105124294656). High Performance - Type-Traits In this lesson, we will learn about type traits, their advantages, and their application in embedded programming. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4764941737263104). High Performance - - Examples The examples for application of type-traits in embedded programming. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6027383922491392). High Performance - - Exercise In this exercise, you will use the type-traits libraray to perform certain tasks. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6453979837890560). Safety-Critical Systems - - Examples Examples for using {} for uniform initialization and initializer lists. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5722446848065536). High Performance - Constant Expressions: constexpr In this lesson, we will see the usage and implementation of constexpr in Modern C++. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6418598937493504). Safety-Critical Systems - Automatic Type Deduction: auto In this lesson, we will discuss the automatic type deduction using auto. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4580102618742784). Safety-Critical Systems - - Exercise In this exercise, we will initialize containers using an initializer list. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5374548625063936). Safety-Critical Systems - - Exercises In this exercise, you will extend the MyDistance class from the example in the previous lesson. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4641452468469760). Safety-Critical Systems - Assertions at Compile Time In this lesson, we will learn about assertions at compile time in modern C++. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4545211545944064). Introduction - Facts Here are some facts regarding embedded programming with C++, as well as MISRA C++ and AUTOSAR C++14 guidelines. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4978000514777088). High Performance - - Solution The solution to the type-traits exercise of the previous lesson. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6670242010890240). Safety-Critical Systems - nullptr Instead of 0 or NULL In this lesson, we will learn how new null pointer nullptr cleans up in C++ with the ambiguity of the number 0 and the macro NULL. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5720114982813696). High Performance - Associative Containers: The Hash Function The hash function maps a potentially infinite number of keys onto a finite number of buckets. What is the strategy of the C++ runtime, and how can you tailor it to your needs? Let’s disucss these questions further. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5837204091830272). High Performance - Templates in Modern C++ The given lesson provides an introduction to templates in modern C++. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5140279600349184). High Performance - Function Templates In this lesson, we will learn about function templates and their uses. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5653915678801920). High Performance - Class Templates In this lesson, we will learn about class templates in embedded programming. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4756317778477056). High Performance - Templates: Specialization In this lesson, we will learn about template specialization. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5882217685319680). High Performance - Templates: CRTP In this lesson, we will learn about curiously recurring template patterns in modern C++. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4847211416387584). Reduced Resources - - Solution We’ll discuss the solution to the exercises covered in the previous lesson. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6504076336431104). Reduced Resources - Memory Management: Memory Allocation In this lesson, we will learn about a subsection of memory management - memory allocation. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6562947386048512). Reduced Resources - Copy versus Move Semantic In this lesson, we will compare the performance of the copy and move semantic for the containers in the Standard Template Library (STL). View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5416008347025408). High Performance - Class Template: Friends In this lesson, we will learn about friends of class templates. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4772559130198016). High Performance - Template Parameter In this lesson, we will discuss template parameters. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5691977276325888). High Performance - Template Parameter: Variadic Templates In this lesson, we will learn about one of the powerful new tools of C++11: variadic templates. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4805076193378304). Reduced Resources - Move Semantic We will talk about some important, often overlooked properties of the move semantic in this lesson. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6606577173790720). Reduced Resources - - Examples Some examples of copy and move semantics will be discussed in this lesson. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5018636194414592). Reduced Resources - Perfect Forwarding We will learn about perfect forwarding in this lesson. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4559177772957696). Reduced Resources - Memory Management: Memory Deallocation In this lesson, we will learn about the second subsection of memory management - memory deallocation. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6670303394529280). Reduced Resources - STL: Sequential Containers In this lesson, we will discuss some sequential containers and focus on std::array. It has unique characteristics among all sequential containers of the Standard Template Library. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4723601771069440). Reduced Resources - - Example An example of rvalue and lvalue references in modern C++. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5129588420116480). High Performance - Associative Containers: Performance Comparison Modern C++ has eight associative containers, but we should use std::map and std::unordered_map. Why? Let’s disucss in this lesson. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5324744431763456). Reduced Resources - Memory Management: Overloading Operator new and delete 2 In this lesson, we will refine the strategy for overloading operators new and delete. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6005551643230208). Reduced Resources - Smart Pointers: Cyclic References In this lesson, we'll examine how the use of shared pointers can create a reference cycle and why this could be harmful. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5798637969866752). Several Tasks Simultaneously - The Contract This lesson goes over the three levels of contracts in modern C++. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4644704832454656). Several Tasks Simultaneously - Atomics In this lesson, we will discuss atomics and the different kinds of atomic operations. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6346056503656448). Several Tasks Simultaneously - - Example The following example uses the default memory model, or sequential consistency. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6585187532013568). Reduced Resources - - Exercise In this exercise, you will implement one of the examples in the previous lesson with move semantic. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5335333157732352). Several Tasks Simultaneously - - Examples Let’s take a look at examples for creating threads, thread lifetimes, and thread methods. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5684109030457344). Several Tasks Simultaneously - Locks In this lesson, we will learn about different locks and their usage in embedded programming. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5937664706478080). Reduced Resources - Memory Management: Overloading Operator new and delete 1 In this lesson, we will learn how to overload the operators new and delete so we can manage memory in a better way. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6018919963820032). Reduced Resources - Smart Pointers: Shared Pointers Next, we will go over shared pointers, which follow the principle of keeping a reference count to maintaining the count of its copies. The lesson below elaborates further. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5978301652795392). Several Tasks Simultaneously - - Solution In this lesson, we will discuss the solution to the exercise in of the previous lesson. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5079549433872384). Conclusion - Course Conclusion Author's concluding words regarding the course. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6649186168602624). Several Tasks Simultaneously - Synchronization and Ordering In this lesson, we will learn about different memory models in C++ that relate to synchronization and ordering. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6431758415298560). Reduced Resources - Smart Pointers: Unique Pointers In this lesson, we will examine the first type of smart pointer – the unique pointer. It limits access to its resource, thereby maintaining its privacy. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4912319123423232). Several Tasks Simultaneously - - Exercise In this exercise, you will explore atomic operations and sequential consistency on your own. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5368026146799616). Several Tasks Simultaneously - Mutexes In this lesson, let's look at how to tackle data races with mutexes. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5909117065494528). Several Tasks Simultaneously - Thread-Safe Initialization of Data In this lesson, we will learn about the three ways for thread-safe initialization of data. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5347398157074432). Several Tasks Simultaneously - Tasks In this lesson, we will see how tasks should be your first choice in the general case of multithreading. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4922927445180416). Several Tasks Simultaneously - std::promise and std::future In this lesson, we will see how you have full control over the task with std::promise and std::future. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5881500090236928). Reduced Resources - Smart Pointers: Weak Pointers std::weak_ptr is the last component of the smart pointers family. Its purpose is limited compared to the other smart pointer, and we will examine why in this lesson. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4511441103093760). Several Tasks Simultaneously - Threads This lesson will discuss the basic building block of multithreaded programs - threads. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6640840912928768). Several Tasks Simultaneously - - Solutions The solutions to the exercises in the previous lesson. Here you can test the techniques you learned. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5627147093803008). Reduced Resources - Smart Pointers: Performance Comparison In this lesson, we will perform a simple performance comparison test for various smart pointers. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5540535131439104). Reduced Resources - Smart Pointers: Passing Smart Pointers In this lesson, we will discuss the rules regarding passing smart pointers. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6274591615877120). Several Tasks Simultaneously - Thread-Local Data This lesson offers an introduction to thread-local data. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5397982235066368). Several Tasks Simultaneously - Condition Variables In this lesson, we will see how tasks should be your first choice when using multithreading. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4947608038539264). Safety-Critical Systems - User-Defined Literals: Introduction In this lesson, we will introduce user-defined literals. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6711305790554112). Reduced Resources - Smart Pointers: Introduction This lesson will introduce you to smart pointers in Modern C++. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/6004800145588224). Safety-Critical Systems - Uniform Initialization with {} In this lesson, we will learn about initialization with {} and how it prevents narrowing. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5452974862106624). Several Tasks Simultaneously - std::packaged_task In this lesson, we will introduce std::packaged_task, which is used to parallelize big computer jobs. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4905401025822720). Conclusion - About the Author Have questions about About the Author? Go for it! View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/5238668421758976). Safety-Critical Systems - User-Defined Literals: Raw and Cooked In this lesson, we will study raw and cooked forms of user-defined literals. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4617650330140672). Safety-Critical Systems - Built-in Literals A shorthand introduction to the new built-in literals in C++ 14. View the lesson [here](https://www.educative.io/collection/page/10370001/6066104977850368/4936638301995008).
About the Embedded Programming with Modern C++ (Rainer Grimm) category [Embedded Programming with Modern C++ (Rainer Grimm)] (1)