2017-02-20 2 views
0

Wenn ich diesen Code auf VS2015 kompilieren bekomme ich folgende FehlerC++ Template-Mitglied funtion "Kennung nicht gefunden"

Fehler C3861 'Shutdown': identifier not found

template<class T, class... ARG> 
class __declspec(dllexport) ThreadManager 
{ 

public: 
    void ShutDown(); 
    ~ThreadManager(); 
}; 

template<class T, class... ARG> 
void ThreadManager<T, ARG...>::ShutDown() 
{ 
    //do stuff 
} 

Der Fehler ist in diesem Code

wenn ich es zu

template<class T, class... ARG> 
ThreadManager<T, ARG...>::~ThreadManager() 
{ 
    if (isRunning) 
     this->Shutdown(); 
} 
ändere

Ich erhalte Fehler C2039 'Shutdown': is not a member of 'ThreadManager'

Wie behebe ich das?

+0

'Shutdown'! =' ShutDown'. Abstimmung zum Schließen als ot/typo. – WhozCraig

+0

Voting zum Schließen als Tippfehler. – Steeve

+0

** Verwenden Sie die automatische Vervollständigung **. Es ist mehr als nur das Tippen weniger Zeichen. Ich fand auch, dass das Stoppen, das Atmen und das weit geöffnete Auge manchmal helfen kann. – bolov

Antwort

1

Fall Problem. Sie verwenden Kamel Fall ShutDown in Erklärung, aber Shutdown im destructor.

1

Wenn der Compiler einen Fehler sagt, bedeutet dies, es. Der Funktionsname ist ShutDown.

1

Ihre Methode Name ist ShutDown() aber Ihr fordern shutdown()