@ -3,17 +3,30 @@ This is a library of C++ code which I use as a standard library wrapper, supplem
If you want to use it, you can add all of the source files to your source tree, configure the `#define`'s in `config.h` to suit your needs, and it should just work.
The exceptions are the files `config.h` and `types.h` which are required by every other file.
---
Features:
- Stack, Scratch, and Block-based allocators as well as memory-leak checking mechanism and OS allocator wrappers in `alloc.h/.cpp`
- Heap-friendly String type, including format strings and StringBuffers/Builders, as well as `<string.h>` function replacements as static methods in single-header `string.h`
- Instrusive serialization mechanism in `serialize.h/.cpp` for complex types and primitives (no reflection though)
- A few hash functions, HashTable and CacheTable (hash table that can forget its keys) implementations in `table.hpp`
- A dynamic/growing array implementation in `array.hpp`
- Common file operations, `<stdio>` wrapper in `file.h/.cpp`
- Process signal handlers in `signal-handler.h` (define what happens when your process gets sent a SIGINT signal, etc)
- `stdout` / printf wrapper in `print.h/.cpp` for programmer ergonomics + making it so if you `#include <stdio.h>` in your program, it will be just in these files.
And some more stuff that is TODO:
- `cpuid` x86 instruction wrapper
- `glm` replacement - vector, matrix, and quaternion types and some common operations involving them