template 这个用法到底是什么意思?该怎么处理

template 这个用法到底是什么意思?
template <class T,DWORD F> DWORD CVMemPool<T,F>::ms_dwSrtFree;
template <class T,DWORD F> DWORD CVMemPool<T,F>::ms_dwEndFree;
template <class T,DWORD F> BOOL CVMemPool<T,F>::ms_bEmptyFree;
template <class T,DWORD F> BOOL CVMemPool<T,F>::ms_bFullFree;
template <class T,DWORD F> DWORD CVMemPool<T,F>::ms_dwTotalSize;
template <class T,DWORD F> DWORD CVMemPool<T,F>::ms_dwFreeQueueSize;
template <class T,DWORD F> char* CVMemPool<T,F>::ms_pData;


如果注释掉就会出错。
以上代码是一个类中的。从网上找的

LNK2001: unresolved external symbol "private: static char * CVMemPool<class CVMObj,100000>::ms_pData" (?ms_pData@?$CVMemPool@VCVMObj@@$0BIGKA@@@0PADA)
TestVMemPoolDlg.obj : error LNK2001: unresolved external symbol "private: static unsigned long CVMemPool<class CVMObj,100000>::ms_dwSrtFree" (?ms_dwSrtFree@?$CVMemPool@VCVMObj@@$0BIGKA@@@0KA)
TestVMemPoolDlg.obj : error LNK2001: unresolved external symbol "private: static unsigned long CVMemPool<class CVMObj,100000>::ms_dwFreeQueueSize" (?ms_dwFreeQueueSize@?$CVMemPool@VCVMObj@@$0BIGKA@@@0KA)
TestVMemPoolDlg.obj : error LNK2001: unresolved external symbol "private: static unsigned long CVMemPool<class CVMObj,100000>::ms_dwEndFree" (?ms_dwEndFree@?$CVMemPool@VCVMObj@@$0BIGKA@@@0KA)
TestVMemPoolDlg.obj : error LNK2001: unresolved external symbol "private: static int CVMemPool<class CVMObj,100000>::ms_bFullFree" (?ms_bFullFree@?$CVMemPool@VCVMObj@@$0BIGKA@@@0HA)
TestVMemPoolDlg.obj : error LNK2001: unresolved external symbol "private: static int CVMemPool<class CVMObj,100000>::ms_bEmptyFree" (?ms_bEmptyFree@?$CVMemPool@VCVMObj@@$0BIGKA@@@0HA)

------解决方案--------------------
template主要用于泛型编程,提高代码的重用性。
------解决方案--------------------
template主要用于泛型编程,提高代码的重用性。
是模板的关键字
在函数前面说明该函数是函数模板
在类前面说明该类是类模板
要区分类模板和模板类以及函数模板和模板函数概念