0

我将尝试用一个简单的例子来解释我的问题:

class UselessClass {};

template<class RUNNABLE>
class Task : public RUNNABLE
{
public:
    static void StartScheduler()
    {
        //Start system scheduler
    }
};

主文件

Task<UselessClass>::StartScheduler(); //Correct

//Task::StartScheduler();   //Wrong

我想要做的是编写以下代码:Task::StartScheduler();

4

1 回答 1

2

你不能。模板不是一个类,你不能在不提供模板参数的情况下调用它,这样编译器就会知道调用方法的确切类型。

当您尝试使用Task::StartScheduler();时,编译器无法知道RUNNABLE模板参数的类型。

你可以这样做:

using UselessTask = Task<UselessClass>;
UselessTask::StartScheduler();

虽然不是你想要的,

于 2020-01-30T13:03:58.420 回答