另外应为模板不支持分离编译,想在其他编译单元中引用的话,代码就只能都写在头文件中,但是在头文件中初始化静态成员会造成多重定义问题(可用编译器扩展GCC:__attribute__((weak))或MSVC:__declspec(selectany)来解决),使用单例模式可以标准c++的方式解决此问题