app | ||
premake | ||
src | ||
.gitignore | ||
LICENSE.txt | ||
premake5.lua | ||
README.md |
C++ Lab
What is?
This is just c++ project that works as a engineering lab. C++ is an extension of the C language that adds some Oriented Programing Features. The C++ language is complex and odd. The language give high level primitives to the developer but also the full responsibility of memory management and low level control that characterizes the c language. So why to explore C++ today with so many high level languages out there? The reason why is basically because C++ is at the same time a low level language and high level one. You got the access to low level trickery and also the primitives to implement the design patterns you usually find in any modern software project. The amplitude of use cases provided by the language is huge and the amount of knowledge you get from master it is also valuable. The fact that high level languages don't force you to understand the memory model and underlying hardware architectures does not mean that that knowledge is not important. This repository serves as the laboratory needed to conduct those kind of experiments.
In a nutshell this project has the sole purpose to serve as a learning platform
What can you learn with C++
You can understand in a practical way how you can manage the memory manually. How you can avoid some of the most pitfalls like memory leak problems by following practices like RAII. By exploring the technics that revolve around memory allocation you can understand in a more profound way how languages like java, python, and rust manage memory and the obvious tradeoffs involved.
How to run this?
This c++ project uses premake. Premake will generate the build files needed based on the development environment you need.
In my particular use case I use linux and the gmake
profile to build this project.
I run, as an example
premake5 gmake
make
Premake consumes the premake5.lua
file. This in turn will include other premake files that you can find in the premake directory.