Releases: deqyra/CppTools
Releases · deqyra/CppTools
v1.1
What's new
- Range view library, featuring:
ranges::dereference_view
ranges::reverse_pair_view
ranges::reverse_map_pair_view
ranges::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
narrow
andwiden
in 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_exception
was removed (in favor of new categorylookup_exception
) - Header
interruptible.hpp
was moved from directorythread/interface
to directorythread
- Header
allocator.hpp
was moved from directoryutility
to 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
stringable
was moved from headerutility/concepts.hpp
to headerutility/to_string.hpp
- Class template
sine_generator
was moved out of namespacemath
clamped_range
andwrapping_range
were renamed toclamped_value
andwrapping_value
respectively- Removed operator overloads on both
clamped_value
andwrapping_value
which led to confusing semantics - Fixed incorrect arithmetic on both
clamped_value
andwrapping_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.