CPPrelude is a body of code that I tend to write over and over again in every project I make. So, I decided to write it as a library and include it in my projects.
It contains algorithms, containers, memory management stuff ... etc.
Developed by:
CPPrelude version 5.0.0 is released under the GNU Lesser General Public License version 3.
Check out the examples.
For Philosophy and coding standard please refer to this link.
How CPPrelude does polymorphism?
- CPPrelude uses premake5 as its meta build system so you have to download premake5
- Use premake5 to generate project/solution files in order to compile the library.
- Ex:
premake5 gmake
this will generate the build folder with linux make files inside - Ex:
premake5 vs2015
this will generate the build folder with visual studio 2015 solution files inside
- Ex:
- CPPrelude supports 32-bit and 64-bit targets and has a debugShared and releaseShared modes
- building the library is as easy as invoking your build system
- binaries should be generated inside a bin folder right beside the build folder
- Also a unittest executable will be generated you can invoke it to test your CPPrelude build
- algorithm: a collection algorithms that could be used with the provided containers.
- allocator: allocators that could be used with the provided containers.
- array: a fixed size array.
- bucket_array: a bucket array container.
- bufio: a buffered input/output.
- defines: languages primitives.
- dlinked_list: a double linked list.
- dynamic_array: a dynamic grow-able array.
- error: a collection of error reporting functions.
- file: a file stream.
- file_defs: OS specific file handles
- fmt: a collection standard print/scan functions
- hash_array: a hash array implementation.
- io: a basic stream input/output implementation.
- memory: a basic memory slice primitive.
- memory_context: a memory context/allocator trait.
- memory_watcher: a memory leak scope watcher.
- platform: an abstraction on the actual OS.
- priority_queue: a heap implementation.
- queue_array: a queue implementation based on a dynamic_array data structure.
- queue_list: a queue implementation based on a dlinked_list data structure.
- result: a result the combines a value and an error into the same structure in a transparent manner.
- slinked_list: a single linked list implementation.
- stack_array: a stack implementation based on a dynamic_array data structure.
- stack_list: a stack implementation based on a slinked_list data structure.
- stream: a memory stream implementation.
- string: an UTF-8 string implementation.
- tree_map: a red black tree implementation.
Feel free to fork and create pull requests at any time. It would be nice if you involved any one of us with you from the start to guide you, or maybe discuss your idea itself (Developers e-mails are up above).
- Ahmed Hesham for adding Visual Studio debug visualizer.