The world of coding for embedded is filled with a large amount of "rules of thumb" and "best practice" that many people can not properly justify or explain. Many of these rules of thumb involve avoiding modern features of C++.
This repo will explore several "modern" (and not so modern) features of C++ that are often shunned in the realm of embedded programming and allow users to understand C++
In this repository we're aiming to use the scientific method to gain true understanding of the modern features of c++ on embedded systems and their consequences. Furthermore we will avoid creating "blanket rules" of our own in favor of providing the data for embedded engineers to make informed decisions.
The scientific method calls for suggestion of a hypothesis and then validation, rejection, or modification of that hypothesis based on the results of experimentation.
Provide small but practical examples of modern c++ features compared against code that executes the same feature in a more basic way and categorize.
- Memory usage
- Execution time
- Difference in CPU instructions
- Lines of code
This repository will provide the ability to build for the following target systems:
- X86
- Arm
- Arm64
- RiscV