|
1 year ago | |
---|---|---|
data | 1 year ago | |
.gitignore | 1 year ago | |
CMakeLists.txt | 1 year ago | |
LICENSE | 2 years ago | |
README.md | 2 years ago | |
main-testing.cpp | 1 year ago | |
settings.h | 1 year ago |
README.md
description
This "library" contains or will in the future contain an assortement of algorithms, data-structures and such. Where possible, templates are used to enable multipurpose-use.
error-handling
In most cases of unrecoverable errors an exception will be thrown. If the process can safely continue, only logging or return values may indicate a behind-the-scenes recovery.
disable error checks
Checks for certain errors may be disabled in favor of performance. A list of defines can be found at the bottom of this readme.
compatibility
The library is writte with focus on deployment to platforms that have the c++ standard library available. Some parts of the library may work without it but to make it portable when using atomics I found this to be the best route. Otherwise, no third-party libraries will be used. Heap-Memory will be used, therefore this is unsuitable for first-stage operating system development and can be integrated only when malloc() and free() are available.
content
Currently only some datatypes are being implemented. These are split into concurrent and serialized categories. The first containing types which are thread-safe, while the latter contains non-threadsafe types.
installation
Library is written header-only using .hpp files that contain both definition and code in one. Therefore it is quite easy to install; only copy add the location of this library to your include path, add an include statement containing the needed modules and you're set.
library-mode
Should one desire to compile this as a standalone library or dynamically linked library, the precompiler statement "#define SWSKNF_HEADER_ONLY" can be used to enable the header-only mode for accessing the function and class definitions.
disable outside-boundary check for arrays and such => #define SWSKNF_NO_BOUNDARY_CHECK enable check for too-large-pointers in wf-shared-ptr => #define SWSKNF_NO_OVERSIZE_POINTER_CHECK
or alternatively there is a way to fully disable sanity checks => #define SWSKNF_DISABLE_ALL_CHECKS