No description
Find a file
2025-01-02 17:57:40 +00:00
app Missing files 2025-01-02 17:57:40 +00:00
premake Missing files 2025-01-02 17:57:40 +00:00
src Missing files 2025-01-02 17:57:40 +00:00
.gitignore Refactoring 2021-12-25 14:55:21 +00:00
LICENSE.txt Added CPack support. Added license.txt file 2020-07-07 17:53:12 +01:00
premake5.lua More on premake refactoring 2025-01-02 17:57:04 +00:00
README.md more on readme 2021-12-26 14:06:07 +00:00

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.