cpplab/README.md
2021-12-25 16:28:11 +00:00

26 lines
No EOL
1.7 KiB
Markdown

# C++ Lab
## What is?
This is just c++ project that works as a engineering laboratory. C++ is an extension of the C language that adds some Oriented Programing Features. The C++ language is a strange one. Tries to give high level primitives to the developer but also the full responsibility of memory management and low level that characterizes the c language. So why to explore C++ today when so many high level languages exist in place? That's an obvious question right? 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.
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](https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization). 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 premake5. 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
```shell
premake5 gmake
make
```
Premake consumes the `premake5.lua` file. This in turn will include other premake files that you can find in the [premake](premake/) directory.