Вызовите метод stati c класса, полученного из шаблона, без указания шаблона. - PullRequest
0 голосов
/ 30 января 2020

Я попытаюсь объяснить мою проблему на простом примере:

class UselessClass {};

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

main. cpp

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

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

Что я хочу сделать, это напишите следующий код: Task::StartScheduler();

1 Ответ

2 голосов
/ 30 января 2020

Вы не можете. Шаблон не является классом, вы не можете вызывать его без предоставления параметров шаблона, чтобы компилятор знал точный тип для вызова методов.

Когда вы пытаетесь использовать Task::StartScheduler();, компилятор не может знать, каков тип параметра шаблона RUNNABLE.

Вы можете сделать что-то вроде этого:

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

Хотя это не совсем то, что вы хотели,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...