Skip to content

A collection of C++ tools developed by myself over time.

Notifications You must be signed in to change notification settings

deqyra/CppTools

Repository files navigation

cpptools

A collection of C++ tools.

Non-exhaustive summary of the cool stuff in there (ordered by decreasing coolness, to my own appreciation):

Thing Summary
tree An allocator-aware arbitrary tree to store hierarchies of objects. STL-compatible, comes with traversal utilities.
ranges A collection of range adaptors.
exception An exception model and a collection of exception types with convenient macros to throw them.
Predicates A collection of predicate generators for common numerical comparisons and functional combinatorics.
bitwise_enum_ops Scoped, concept-enabled operator overloads for bitwise operations on enum types.
cli Convenient CLI menu builder. Bundled with basic building blocks and a (mostly failproof) input model. See project PicrossEngine for an example usage. Also packs a command-line argument parsing facility.
shell Shell emulator taking in user input to run registered commands. Works with the input model from cli. See project PicrossEngine for an example usage.
interruptible Interface for an entity able to run a threaded task and handle requests to pause, resume and stop.
worker A proposed, all-purpose implementation of the interruptible interface.
String toolbox Basic string processing: tokenization, char removal, etc.

See list.todo for a quick overview of what is likely to be worked on at present.

Troubleshooting

The unit tests for stuff in cli fail: file "xxx" not found.

Make sure you're running the test executable through CTest. If for some reason you need to run the test executable manually, make sure that folder resources (located in folder tests) is copied next to the unit tests executable. CMake should be doing that as a post-build task though, so if you're encountering that problem as part of building through CMake, please file an issue.

About

A collection of C++ tools developed by myself over time.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages