2019-02-23 04:41:53 +00:00
|
|
|
# Dqn
|
2023-07-04 14:04:53 +00:00
|
|
|
|
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.
|
2023-07-04 14:04:53 +00:00
|
|
|
|
|
|
|
## 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
|
2023-07-16 08:01:29 +00:00
|
|
|
that 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
|
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"
|
|
|
|
```
|