Let's re-implement std::function using type-erasure
Full version of the code is on my github simple functor.
Part 1: Short introduction of std::function if you are not familiar with it