#pragma once #include namespace threading { // Stuff that can execute other stuff, like threadpools, should inherit from this. class Executor { public: virtual void Run(std::function func) = 0; }; class SameThreadExecutor : public Executor { public: virtual void Run(std::function func); }; } // namespace threading