C3203编译错误

在编译OgreMeshViewer的时候产生了C3203的错误:

meshviewer\exWTL\DotNetTabCtrl.h(1515) : error C3203: “CDotNetTabCtrl”: 未专用化的类 模板 不能用作 模板 变量,该变量属于 模板 参数“T”,应为 real 类型

其代码如下:
C3203编译错误template <class TItem = CCustomTabItem>
C3203编译错误class CDotNetTabCtrl :
C3203编译错误    public CDotNetTabCtrlImpl<CDotNetTabCtrl, TItem>
C3203编译错误{
C3203编译错误protected:
C3203编译错误    typedef CDotNetTabCtrl thisClass;
C3203编译错误    typedef CDotNetTabCtrlImpl<CDotNetTabCtrl, TItem> baseClass;
C3203编译错误
C3203编译错误// Constructors:
C3203编译错误
public:
C3203编译错误    CDotNetTabCtrl()
C3203编译错误    {
C3203编译错误    }

C3203编译错误
C3203编译错误public:
C3203编译错误
C3203编译错误    DECLARE_WND_CLASS(_T("WTL_DotNetTabCtrl"))  
C3203编译错误
C3203编译错误    //We have nothing special to add.
C3203编译错误    
//BEGIN_MSG_MAP(thisClass)
C3203编译错误    
//    CHAIN_MSG_MAP(baseClass)
C3203编译错误    
//END_MSG_MAP()
C3203编译错误
}
;


根据MSDN所述:
C3203编译错误// C3203.cpp
C3203编译错误
template< typename T >
C3203编译错误struct X {
C3203编译错误   void f(X) {}
C3203编译错误}
;
C3203编译错误
C3203编译错误template< typename T >
C3203编译错误struct Y : public X<Y> {   // C3203
C3203编译错误
// try the following line instead
C3203编译错误
// struct Y : public X<Y<T> > {
C3203编译错误
   void f(Y) {}
C3203编译错误}
;
C3203编译错误
C3203编译错误int main() {
C3203编译错误   Y<int> y;
C3203编译错误}

C3203编译错误


将第三行代码替换成:
C3203编译错误public CDotNetTabCtrlImpl<CDotNetTabCtrl<TItem>, TItem>

即可。
上一篇:jQuery提交多个表单


下一篇:非常流行的十款 jQuery 插件推荐