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* und const 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 Schnittstelle open_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.


Anmelden zum Antworten