小编bay*_*ayu的帖子

前向声明和模板功能错误

目前我对前向声明和模板功能有一个令人沮丧的问题.我一直在尝试谷歌搜索并做一些修改但到目前为止没有任何工作.以下是代码的片段:

class TaskScheduler; --> //forward declaration of ‘struct TaskScheduler’
//
//

class TaskEvent {
//
//
};

class HostTask {
//
//
};

template<class T> inline HostTask*
findT(TaskScheduler* tss, T* e)
{
    map<int, HostTask*>::iterator it;
    bool bEq = false;
    for(it = tss->tasks_.begin(); it != tss->tasks_.end(); it++) { --> //error: invalid use of incomplete type ‘struct TaskScheduler’
    if(dynamic_cast<TaskEvent*>(e))
        bEq = dynamic_cast<TaskEvent*>(e)->equal(it->second->ev_);
    else if(dynamic_cast<HostTask*>(e))
        bEq = dynamic_cast<HostTask*>(e)->equal(it->second);
    if(bEq) {
        return it->second;
    }
}
return NULL;
}
//

//class TaskScheduler definition
class TaskScheduler …
Run Code Online (Sandbox Code Playgroud)

c++ forward-declaration

3
推荐指数
1
解决办法
3350
查看次数

标签 统计

c++ ×1

forward-declaration ×1