Awesome
Introduction
Little Type Library or LTL for short is a lightweight library that can be used for meta programming and / or functional programming. LTL is under MIT license, and as such, you can use it without any limitation. I just ask you to signal me every bugs you are going to experience. This library works under C++ 17.
There is some features that are heavily inspired from C++20 range proposal.
The different sub-library
- Type library:
- Variable carrying type
- Compile time computation
- Compile time programming in the same way of run time programming
- CRTP
- Traits library
- Traits like ordinary function
- Concept like
- Macro to generate your own traits for your templated types
- Tuple library
- Tuple like array with square brackets notation
- Type manipulation with type list
- For each for tuples
- Algorithms library
- Predicates
- No need for iterators
- Member function are allowed in algorithms
- Find returns option monad
- zip
- index and enumerate
- Functional library
- Pipeline
- Infinite sequence
- Actions
- List monad
- Option monad
- Error monad
- Currying
- Other utilities
- Condition helpers (
AllOf
,AnyOf
,NoneOf
) - Streambuf for write into an array thanks to standard streams
- Strong types
- Variant helpers and
recursive_variant
- Condition helpers (
I would like to thanks Gaétan Bahl and Nicolas Tollenaere for their advice I would also thank friendlyanon for the better CMake usage