C3203编译错误

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

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

其代码如下:
None.giftemplate < class TItem = CCustomTabItem>
None.gif class CDotNetTabCtrl :
None.gif     public CDotNetTabCtrlImpl<CDotNetTabCtrl, TItem>
ExpandedBlockStart.gif {
InBlock.gifprotected:
InBlock.gif    typedef CDotNetTabCtrl thisClass;
InBlock.gif    typedef CDotNetTabCtrlImpl<CDotNetTabCtrl, TItem> baseClass;
InBlock.gif
InBlock.gif// Constructors:
InBlock.gif
public:
InBlock.gif    CDotNetTabCtrl()
ExpandedSubBlockStart.gif    {
ExpandedSubBlockEnd.gif    }
InBlock.gif
InBlock.gifpublic:
InBlock.gif
InBlock.gif    DECLARE_WND_CLASS(_T("WTL_DotNetTabCtrl"))  
InBlock.gif
InBlock.gif    //We have nothing special to add.
InBlock.gif    
//BEGIN_MSG_MAP(thisClass)
InBlock.gif    
//    CHAIN_MSG_MAP(baseClass)
InBlock.gif    
//END_MSG_MAP()
ExpandedBlockEnd.gif
};


根据MSDN所述:
None.gif //  C3203.cpp
None.gif
template< typename T >
ExpandedBlockStart.gif struct X  {
ExpandedSubBlockStart.gif   void f(X) {}
ExpandedBlockEnd.gif};
None.gif
None.giftemplate< typename T >
ExpandedBlockStart.gif struct Y :  public X<Y>  {   // C3203
InBlock.gif
// try the following line instead
InBlock.gif
// struct Y : public X<Y<T> > {
ExpandedSubBlockStart.gif
   void f(Y) {}
ExpandedBlockEnd.gif};
None.gif
ExpandedBlockStart.gif int main()  {
InBlock.gif   Y<int> y;
ExpandedBlockEnd.gif}
None.gif


将第三行代码替换成:
None.gif public CDotNetTabCtrlImpl<CDotNetTabCtrl<TItem>, TItem>

即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值