tlx is a collection of C++ helpers and extensions universally needed, but not found in the STL.The most important design goals and conventions are:
- high modularity with as little dependencies between modules as possible.
- attempt to never break existing interfaces.
- compile on all platforms with C++ – smartphones, supercomputers, windows, etc.
- zero external dependencies: no additional libraries are required.
- warning and bug-freeness on all compilers.
- keep overhead down – small overall size such that is can be included without bloating applications.
--->> Doxygen Documentation <<---
CountingPtr– an intrusive reference counting pointerdie()- Simple Invariant Testing :die(),die_unless(),die_if(),die_unequal().- logger.hpp :
LOG,LOG1,LOGC,sLOG,wrap_unprintable(). - Miscellaneous:
timestamp(),unused(),vector_free(). - Algorithms :
merge_combine(),exclusive_scan(),multiway_merge(),parallel_multiway_merge(),multisequence_selection(),multisequence_partition(). - Data Structures :
RingBuffer,SimpleVector,StringView, B+ Trees, Loser Trees,RadixHeap,(Addressable) D-Ary Heap - Defines and Macros :
TLX_LIKELY,TLX_UNLIKELY,TLX_ATTRIBUTE_PACKED,TLX_ATTRIBUTE_ALWAYS_INLINE,TLX_ATTRIBUTE_FORMAT_PRINTF,TLX_DEPRECATED_FUNC_DEF. - Message Digests :
MD5,md5_hex(),SHA1,sha1_hex(),SHA256,sha256_hex(),SHA512,sha512_hex(). - Math Functions :
integer_log2_floor(),is_power_of_two(),round_up_to_power_of_two(),round_down_to_power_of_two(),ffs(),clz(),ctz(),abs_diff(),bswap32(),bswap64(),popcount(),power_to_the,Aggregate,PolynomialRegression. - String Algorithms :
starts_with(),ends_with(),contains(),contains_word(),trim(),replace_all(),erase_all(),join(),split(),split_view(),split_words(),union_words(),split_quoted(),join_quoted(),to_lower(),hexdump(),bitdump_le8(),word_wrap(),escape_html(),parse_uri(),parse_uri_form_data(),parse_si_iec_units(),format_iec_units(),ssprintf(),expand_environment_variables(),levenshtein(),hash_djb2(),hash_sdbm(). - Meta-Template Programming :
call_foreach(),apply_tuple(),vmap_foreach(),Log2Floor,FunctionChain,FunctionStack,is_std_pair,is_std_tuple,is_std_vector,is_std_array,TLX_MAKE_HAS_MEMBER. - Sorting Algorithms :
parallel_mergesort()(experimental parallel merge sort from MCSTL),sort_strings()(using radix sort and multikey quicksort),sort_strings_parallel()(using parallel super scalar string sample sort), sorting network for up to sixteen elements. - Backtrace Printing :
print_cxx_backtrace(). - Command Line Parsing :
CmdlineParser. - Multi-Phase Timer:
MultiTimer,ScopedMultiTimerSwitch,ScopedMultiTimer. - Fast Delegates :
Delegate- a betterstd::function<>replacement. - SipHash : simple string hashing
siphash() - StackAllocator : stack-local allocations
- Threading :
ThreadPool,Semaphore,ThreadBarrierMutex,ThreadBarrierSpin.
Please report bugs via the github issue tracking system.
tlx is licensed under the Boost Software License - Version 1.0.
If you use tlx in an academic context or publication, please cite it as
@Misc{TLX,
title = {{TLX}: Collection of Sophisticated {C++} Data Structures, Algorithms, and Miscellaneous Helpers},
author = {Timo Bingmann},
year = 2018,
note = {\url{https://panthema.net/tlx}, retrieved {Oct.} 7, 2020},
}