Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-07-03 | Shorten switchOnType, function_traits and connect* | Alexey Rusakov | |
...thanks to C++20 awesomeness. A notable change is that wrap_in_function() (and respectively function_traits<>::function_type) and fn_return_t alias are gone. The former are no more needed because connectUntil/connectSingleShot no more use std::function. The latter has been relatively underused and with the optimisation of switchOnType hereby, could be completely replaced with std::invoke_result_t. Rewriting connect* functions using constexpr and auto parameters made the implementation 30% more compact and much easier to understand (though still with a couple of - now thoroughly commented - tricky places). Dropping std::function<> from it may also bring some (quite modest, likely) performance benefits. | |||
2022-01-18 | Add [[maybe_unused]] to things the lib doesn't use | Alexey Rusakov | |
2021-12-02 | Cleanup on Sonar issues | Alexey Rusakov | |
2021-12-02 | Improve function_traits<>; split out from util.* | Alexey Rusakov | |
Quotient::function_traits<> did not support member functions in a proper way (i.e. the way std::invoke_result<> treats them, with the function's owning class represented as the first parameter). Now that I gained the skill and understanding in function_traits<> somewhat wicked machinery, I could properly support member functions. Overloads and generic lambdas are not supported but maybe we'll get to those one day. |