A typesafe callback system for standard C++