|
C++ Utility library
0.45.0-beta
|
Compile with: -std=c++17
Linker options:
-lstdc++fs to enable std::experimental::filesystem-pthread to use threading with CSV files-lws2_32 for Windows socket support (in utils::http)-lsqlite3 to link with SQLite on Unix systems (SQLite source is also available as alternative) Install sqlite3 and libsqlite3-dev to link automatically.For MSVC:
_CRT_SECURE_NO_WARNINGS in Properties>C/C++>Preprocessor>Preprocessor Definitions#include <sqlite3> to #include "sqlite3.h" inside sqlite_orm and add sqlite3.c to your build system.Doxygen documentation can be found here.
Code coverage (lcov) report can be found here.
| File | Description |
|---|---|
| utils_algorithm.hpp | Algorithmic extensions and ::iter with CPPItertools |
| utils_bits.hpp | Bit related extensions |
| utils_colour.hpp | Colour class and LUTs for colour mappings from tinycolormap |
| utils_compiler.hpp | MACRO helpers |
| utils_control.hpp | PIDController implementation from tekdemo |
| utils_crc.hpp | Namespace wrapper for CRC calculations from CRCpp |
| utils_csv.hpp | Namespace wrapper for CSV file IO from p-ranav/csv |
| utils_exceptions.hpp | Extra Exceptions |
| utils_http.hpp | Namespace wrapper for HTTPRequest from elnormous/HTTPRequest |
| utils_ini.hpp | ConfigReader class commonly for .ini files |
| utils_io.hpp | File/Stream IO (BitStream...) and ::mio with memory mapped file io |
| utils_json.hpp | Namespace wrapper for nlohmann JSON |
| utils_logger.hpp | Static Logger singleton |
| utils_math.hpp | Math extensions |
| utils_memory.hpp | Memory management |
| utils_misc.hpp | Other (lexical_cast, scoped callback...) |
| utils_os.hpp | OS extensions (console manipulation with colours etc.) |
| utils_print.hpp | Generic pretty printer |
| utils_profiler.hpp | Static Profiler singleton and macros for profiling function-/blocks in chrome://tracing format |
| utils_random.hpp | Namespace wrapper for effolkronium/random and extra generators |
| utils_sqlite.hpp | Namespace wrapper for fnc12/sqlite_orm |
| utils_string.hpp | String extensions |
| utils_test.hpp | Extra's for Doctest like custom ASSERT and std::abort() recoverable test |
| utils_threading.hpp | Threadpool class and related things |
| utils_time.hpp | Time measurement |
| utils_traits.hpp | Type traits and other macro helpers. |
| utils_version.hpp | Namespace wrapper for Neargye semver |
| utils_xorstring.hpp | Compile time string obfuscation from JustasMasiulis or qis |
| algo/algo_avltree.hpp | AVL Tree implementation |
| algo/algo_bstree.hpp | Binary Search Tree implementation |
| algo/algo_huffman.hpp | Huffman compress/decompress |
| crypto/crypto_aes.hpp | Basic AES implementation (WIP) |
| crypto/crypto_feistel.hpp | Basic Feistel cipher structure (WIP) |
| crypto/crypto_packager.hpp | Basic functions to pack/unpack data (WIP) |
| external/cppitertools | CPPItertools by Ryan Haining |
| external/crc | CRC calculations from CRCpp |
| external/csv | csv library by p-ranav |
| external/hedley | Hedley MACRO helpers |
| external/HTTPRequest | HTTPRequest library by elnormous |
| external/sqlite_orm | SQLite3 wrapper by fnc12. Also contains sqlite3 amalgamation. |
| external/doctest.hpp | Doctest C++ test framework |
| external/json.hpp | JSON library by Niels Lohmann |
| external/mio.hpp | mio by Mabdreyel |
| external/random.hpp | Modern random utilities from effolkronium/random |
| external/semver.hpp | Semantic versioning library by Neargye |
| /utils_test/ | Unit tests for most functions with Doctest |