2017-01-30 2 views
-1

Hallo Ich versuche eine statische Methode zum Überprüfen von Null-Zeigern in Unreal Engine zu erstellen.Generische statische Methode

.h-Datei

template<typename T> 
    static bool checkForNull(T pointer); 

CPP-Datei

bool MyClass::checkForNull(T pointer) 
{ 
    { 
     if (!pointer) { 
      printlog(FString("Your pointer is null")); //Another static function for printing 
      return false; 
     } 
     else { 
      return true; 
     } 
    } 
} 

Aber ich bin auch neu in C++ und ich denke, es gibt einen Syntaxfehler in meinem Code? Wie kann ich eine statische generische Methode erstellen?

+1

Wenn es einen Syntaxfehler gibt, gibt es eine Fehlermeldung, die wir gerne lesen würden. – Downvoter

+0

Fragen, die Debugging-Hilfe suchen ("** warum funktioniert dieser Code nicht? **") müssen das gewünschte Verhalten, ein spezifisches Problem oder einen Fehler und den kürzesten Code enthalten, der zur Reproduktion in der Frage erforderlich ist **. Fragen ohne ** eine klare Problemstellung ** sind für andere Leser nicht nützlich. Siehe: [Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels] (http://stackoverflow.com/help/mcve). – Biffen

+2

Verwenden Sie stattdessen einen 'T *' - Parameter, um zu übergebende Zeiger zu erzwingen, nicht um willkürliche Objekte. – Downvoter

Antwort

1

Das Problem ist, dass Sie den Code für Ihre Vorlage-Methode in die Kopfzeile einfügen müssen, so dass der Compiler den entsprechenden Code aus der Vorlage erstellen könnte, wenn die Header zum Instanziieren der Vorlage enthalten. Sie müssen auch template <class T> vor der Definition wiederholen.

Verwandte Themen