#pragma once template struct CCallback_; template struct CCallback_ { static R invoke(Ts... args, void* u) { return (*reinterpret_cast(u))(args...); } }; template using CCallback = CCallback_;