How to realize closure in C++ Project
Today, I'm going to talk to you about how to implement closures in C++ projects. Many people may not know much about it. In order to make you understand better, the editor summarized the following contents. I hope you can get something from this article.
Example # include # include class Closure {public: Closure () {} ~ Closure () {} virtual void Run () = 0; / / Pure virtual function}; template class FunctionClosure1: public Closure {public: typedef void (* FunctionType) (Arg1) FunctionClosure1 (FunctionType f, Arg1 arg1): _ f (f), _ arg1 (arg1) {} ~ FunctionClosure1 () {} virtual void Run () {_ f (_ arg1); delete this;} private: FunctionType _ f; Arg1 _ arg1;}; template Closure* NewCallback (void (* function) (Arg1), Arg1 arg1) {return new FunctionClosure1 (function, arg1) } / / function with one parameter templatevoid foo (type data) {std::cout