Basically, what I want to achieve is compile-time verification (with possibly nice error message) that registered callable (either a function, a lambda, a struct with call o
You can use std::is_convertible (since C++11), e.g.
static_assert(std::is_convertible_v>, "Wrong Signature!");
or
static_assert(std::is_convertible_v, "Wrong Signature!");
LIVE