#include <stdio.h>// 模板,可以调用函数或者Functortemplate <typename Functor>void TestTemplate(Functor func)...{ func("TestTemplate");}// C函数风格void TestFunction(const char* str)...{ printf("TestFunction:%s ", str);}// Functor风格struct TestFunctor...{ void operator()(const char* str) ...{ printf("TestFunctor:%s ", str); } TestFunctor() ...{ printf("TestFunctor() "); } ~TestFunctor() ...{ printf("~TestFunctor() "); }};int main()...{ TestTemplate(TestFunction); //函数指针作为调用参数 printf("========================================== "); TestTemplate( TestFunctor() ); //Functor临时对象作为调用参数 printf("========================================== "); TestFunctor obj; //生成一个Functor的实例 TestTemplate<TestFunctor&>(obj); //使用引用类型来调用,避免拷贝 return 1;}