Misc | ||
_clang-format | ||
.gitignore | ||
build.bat | ||
build.sh | ||
dqn_containers.cpp | ||
dqn_containers.h | ||
dqn_core.cpp | ||
dqn_core.h | ||
dqn_hash.cpp | ||
dqn_hash.h | ||
dqn_math.cpp | ||
dqn_math.h | ||
dqn_memory.cpp | ||
dqn_memory.h | ||
dqn_misc.cpp | ||
dqn_misc.h | ||
dqn_platform.cpp | ||
dqn_platform.h | ||
dqn_print.cpp | ||
dqn_print.h | ||
dqn_strings.cpp | ||
dqn_strings.h | ||
dqn.h | ||
dqn.rdbg | ||
readme.md |
Dqn
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
repository to your desired location, accessible by your project and in one
header file include the header.
#include "dqn.h"
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.
#define DQN_IMPLEMENTATION
#include "dqn.h"
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.
#define DQN_NO_VARRAY // Disable virtual array container
#define DQN_NO_JSON_BUILDER // Disable the JSON string builder
#include "dqn.h"