Releases: deqyra/CppTools
Releases · deqyra/CppTools
Release list
v1.1
What's new
- Range view library, featuring:
ranges::dereference_viewranges::reverse_pair_viewranges::reverse_map_pair_viewranges::member_view- For each of these views, CPOs acting as range adaptor objects and range adaptor closure objects in namespace
views
- Command-line argument parsing facility in namespace
cli- New exception category
arg_parse_exception
- New exception category
- New exception category
lookup_exception(replaces inaptly named exception categoryrange_exception) - New functions
narrowandwidenin headerutility/string.hpp - Minor adjustments:
- Unit tests for (nearly) everything which didn't have them
- Fixed wrong offset calculation in
contiguous_storage - Fixed implementation of
to_string - Moved various small function definitions into headers and made them
inline
- Breaking changes:
- Exception category
range_exceptionwas removed (in favor of new categorylookup_exception) - Header
interruptible.hppwas moved from directorythread/interfaceto directorythread - Header
allocator.hppwas moved from directoryutilityto directoryutility/detail - Removed namespace
cli::input, all names that were declared in it are now in namespacecli - Removed namespace
string, all names that were declared in it are now in namespace::tools - Concept
stringablewas moved from headerutility/concepts.hppto headerutility/to_string.hpp - Class template
sine_generatorwas moved out of namespacemath clamped_rangeandwrapping_rangewere renamed toclamped_valueandwrapping_valuerespectively- Removed operator overloads on both
clamped_valueandwrapping_valuewhich led to confusing semantics - Fixed incorrect arithmetic on both
clamped_valueandwrapping_value - Reordered constructor parameters of
monitored_value
- Exception category
- CMake:
- Fixed a warning flag being wrongly passed to MSVC, causing build to fail
- Export CppTools CMake module as part of installed package, its path is automatically appended to CMake module paths when the installed package is imported
v1.0
Major features
tree, an arbitrary tree with complete allocator-awarenesscontiguous_storage, a wrapper that provides type-safe access to unitialized memoryexception, an extensible CRTP-based exception model with convenient macros to throw thembitwise_enum_ops, a namespace containing operator overloads to perform bitwise operation on enums in a controlled mannerpred, a library of arithmetic and logic predicate generatorsinterruptible, an interface for an interruptible task-runnerworker, a proposed implementation ofinterruptible
CMake install capabilities
- Install to a path on your CMAKE_PREFIX_PATH list
find_package( cpptools 1.0 REQUIRED )should succeed and expose three targets:cpptools::cpptools_static, which can be statically linked againstcpptools::cpptools_shared, which can be dynamically linked againstcpptools::cpptools, an alias tocpptools::cpptools_static
Builds without warnings on Clang 18.1.8 and MSVC 19.40, in both debug and release modes.
The installed package is relocatable.