A common utilties library for my future creations
 
 
 
 
Go to file
Brett 0bbcb8eeef Merge remote-tracking branch 'github/main' 2023-09-21 23:24:03 -04:00
include/blt Merge remote-tracking branch 'github/main' 2023-09-21 23:24:03 -04:00
libraries argparse get_cast update to work with all is_arithmetic types 2023-09-17 15:22:37 -04:00
src Merge remote-tracking branch 'github/main' 2023-09-21 23:24:03 -04:00
.gitignore update ignore 2023-08-09 21:49:24 -04:00
.gitmodules Parallel hashmap submodule 2022-12-26 23:44:02 -05:00
CMakeLists.txt cpu timer 2023-09-13 16:49:56 -04:00
CMakeSettings.json String buffer 2023-07-10 18:45:43 -04:00
LICENSE String buffer 2023-07-10 18:45:43 -04:00
README.md add parallel hashmaps optional submodule 2023-07-29 02:03:28 -04:00
build_and_run_debug.sh Two children delete is still broken. Single / no child delete works fine. 2023-01-12 14:09:34 -05:00
commit.sh Setup inital cmake file 2022-12-23 13:50:27 -05:00
design.txt String buffer 2023-07-10 18:45:43 -04:00
icon.png String buffer 2023-07-10 18:45:43 -04:00
icon_large.png String buffer 2023-07-10 18:45:43 -04:00
icon_small.png String buffer 2023-07-10 18:45:43 -04:00

README.md

BLT v0.8.0a

A C++20 common utilities library to make thing easy!

Icon


Specialties

blt::logging.v2

Found in the header file include/std/logging.h, blt::logging is a fast and simple single header logging library which can be used independently of BLT. Just include the header file anywhere in your project and in ONE cpp file define #define BLT_LOGGING_IMPLEMENTATION. If you are using BLT as a CMake library (as you should!) this is done for you.

  • Compile Time Config

    • Using CMake
      • Several options are provided which disable various logging contexts, as such global logging can be disabled by passing -DBLT_DISABLE_LOGGING:BOOL=ON
      • Options follow the pattern of BLT_DISABLE_LEVEL where level is one of TRACE,DEBUG,INFO,WARN,ERROR, or FATAL.
        • This allows for individual logging levels to be disabled while leaving the others functional. These options can be combined.
        • See CMakeLists.txt for a complete list of options.
    • Standalone
      • The CMake options define global variables in a config file. If you are using logging standalone you will need to remove the config include.
      • Macros can be used in the same pattern of BLT_DISABLE_LEVEL to disable the various logging levels

Features / Examples

  • Data Structures

    • Queue / Stack
      • faster than std::queue / std::stack
      • backed by a contiguous array
  • Utility

    • Simple Random Wrapper Interface
    • Simple random functions based on the PCG Hash
    • String Functions

      • starts_with
      • ends_with
      • contains
      • toLowerCase
      • toUpperCase
      • split
      • trim
    • Logging
      • See blt::logging section above
    • Time
      • Current time in nanoseconds (without all the c++ gobbledygook)
        • Java's currentTimeMilliseconds
        • nanoTime as well
        • std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::high_resolution_clock::now().time_since_epoch()).count() becomes blt::system::nanoTime()
      • Formatted time string with year/month/date + current time
  • Profiling

    • Basic profiler with history and formatted output