模板类的小问题~

CT8100 2017-09-30 11:35:09

template <bool del, class R, class T>
class _ConstTessMemberResultCallback_0_0 : public TessResultCallback<R> {
public:
typedef TessResultCallback<R> base;
typedef R (T::*MemberSignature)() const;

private:
const T* object_;
MemberSignature member_;

public:
inline _ConstTessMemberResultCallback_0_0(
const T* object, MemberSignature member)
: object_(object),
member_(member) {
}

virtual R Run() {
if (!del) {
R result = (object_->*member_)();
return result;
} else {
R result = (object_->*member_)();
// zero out the pointer to ensure segfault if used again
member_ = NULL;
delete this;
return result;
}
}
};

template <bool del, class T>
class _ConstTessMemberResultCallback_0_0<del, void, T>
: public TessClosure {
public:
typedef TessClosure base;
typedef void (T::*MemberSignature)() const;

private:
const T* object_;
MemberSignature member_;

public:
inline _ConstTessMemberResultCallback_0_0(
const T* object, MemberSignature member)
: object_(object),
member_(member) {
}

virtual void Run() {
if (!del) {
(object_->*member_)();
} else {
(object_->*member_)();
// zero out the pointer to ensure segfault if used again
member_ = NULL;
delete this;
}
}
};


error C2989: '_ConstTessMemberResultCallback_0_0<del,void,R>' : template class has already been defined as a non-template class
这个应该没有问题把。。。。
...全文
495 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CT8100 2017-10-10
  • 打赏
  • 举报
回复
这个问题解决了谢谢大家帮忙~
worldy 2017-09-30
  • 打赏
  • 举报
回复
_ConstTessMemberResultCallback_0_0重复定义
零隐 2017-09-30
  • 打赏
  • 举报
回复
已经定义过了。你试着换参数数目和名称看下。

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧