2019-02-23 04:41:53 +00:00
|
|
|
# Dqn
|
2023-07-04 14:04:53 +00:00
|
|
|
|
|
|
|
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.
|
2023-07-04 14:04:53 +00:00
|
|
|
|
|
|
|
```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
|
|
|
|
the translation unit.
|
2023-07-04 14:04:53 +00:00
|
|
|
|
|
|
|
```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
|
|
|
|
be useful to speed up compile times if you want 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.
|
|
|
|
|
|
|
|
```cpp
|
|
|
|
#define DQN_NO_VARRAY // Disable virtual array container
|
|
|
|
#define DQN_NO_JSON_BUILDER // Disable the JSON string builder
|
|
|
|
#include "dqn.h"
|
|
|
|
```
|