[英]Way to call a static method of a class template without specifying an instantiation?
[英]Call a static method of a class derived from template without specifying template
我将尝试用一个简单的例子来解释我的问题:
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();
你不能。 模板不是一个类,你不能在不提供模板参数的情况下调用它,这样编译器就会知道调用方法的确切类型。
当您尝试使用Task::StartScheduler();
,编译器无法知道RUNNABLE
模板参数的类型是什么。
你可以这样做:
using UselessTask = Task<UselessClass>;
UselessTask::StartScheduler();
虽然这不是你想要的,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.