Dqn/readme.md

44 lines
1.5 KiB
Markdown
Raw Normal View History

2019-02-23 04:41:53 +00:00
# Dqn
2023-07-16 08:01:29 +00:00
My personal standard library that provides allocator aware data structures,
custom memory allocators and various miscellaneous helpers for prototyping. The
library is a unity-build style library where data structures and functions are
separated by category into files for organisation. You only need to include
`dqn.h` which amalgamates all the files into one translation unit.
## Build
To build with this library, copy all the `*.[h|cpp]` files at the root of the
2023-07-16 07:59:07 +00:00
repository to your desired location, accessible by your project and in one
header file include the header.
```cpp
#include "dqn.h"
```
2023-07-16 07:59:07 +00:00
`dqn.h` includes all other files and their declaration into your header. In
*one* `.cpp` file define the macro to enable the implementation of the header in
2023-07-16 08:01:29 +00:00
that translation unit.
```cpp
#define DQN_IMPLEMENTATION
#include "dqn.h"
```
2023-07-16 07:59:07 +00:00
Finally ensure that the compiler has in its search paths for the include
directory where headers are located, e.g. `-I <path/to/dqn/headers>`.
## Customisation
The headers provide macros to compile out sections that are not needed. This can
2023-07-16 08:01:29 +00:00
be useful to speed up compile times or reduce binary size if you only need
a particular part of the library. Each header contains a table-of-contents that
denotes the macro to define to disable that section that should be defined
before the header include.
2023-07-16 07:59:07 +00:00
```cpp
#define DQN_NO_VARRAY // Disable virtual array container
#define DQN_NO_JSON_BUILDER // Disable the JSON string builder
#include "dqn.h"
```