Datei öffnen - Template oder überladene Funktion
-
Hallo,
eine Funktion soll eine Datei öffnen und const char* oder const wchar_t* als Parameter entgegen nehmen können.
Was ist besser, ne Templatefunktion oder zwei separate Funktionen (überladen)?Gruß,
t.
-
Wenn sich die jeweiligen Implementierungen nicht signifikant unterscheiden, würde ich da eine Templatefunktion nehmen, um Codeduplizierung zu vermeiden.
-
Oder, um die Typen trotzdem einzuschränken, als Schnittstelle nur Funktionen für
const char*undconst wchar_t*anbieten und die Implementierung über ein Funktionstemplate realisieren.
-
Bin mir mit der Syntax nicht sicher, speziell was die Zeigerübergabe betrifft, geht das so?
bool open_file ( const char* ); bool open__file ( const wchar_t* ); template <typename T> bool open_training_file ( T* filename ) { return true; // Think positive :) } // Aufruf const char* f = "test.txt"; const wchar_t* g = L"test.txt"; open_training_file (f); open_training_file (g);
-
Ja, das geht so. Allerdings hat Nexus das umgekehrt gemeint.

Du hast als Schnittstelleopen_fileüberladen mit den beiden Varianten und machst in der Implementierung nichts anderes, als die Templatefunktion aufzurufen.
-
In genau diesem Fall, wchar_t const* und char const*, würde ich kein Template verwenden.