String Literale in Funktionstemplate



  • Hallo zusammen,

    stehe grad wieder etwas aufm Schlauch. Ich habe einige string-Funktionen, die ich gern als template umsetzen möchte. Je nach Template-Typ müssen String Literale als char oder wchar_t angegeben werden. Wie macht man sowas?

    Beispiel

    #include <string>
    
    template<typename Ch>
    static std::basic_string<Ch> quote_string( const std::basic_string<Ch>& Text )
    {
       return "\"" + Text + "\""; // für std::string
       // return L"\"" + Text + L"\""; // für std::wstring
    }
    


  • Tip für google: Partielle Template Spezialisierung



  • Es geht noch besser.
    char_traits::to_char_type



  • Gast3 schrieb:

    Tip für google: Partielle Template Spezialisierung

    Genau das will ich ja nicht. Die Operationen sind für alle Stringtypen gleich, es ändert sich nur der CharType . Sonst bräuchte ich auch keine Funktionstemplates, sondern alle Funktionen paarweise für std::string und std::wstring .

    rewrew schrieb:

    Es geht noch besser.
    char_traits::to_char_type

    Das hilft mir, ein einzelnes Zeichen zu konvertieren. Für ganze Strings müsste ich die dann mühsam aus den einzelnen Zeichen zusammenbauen.


Anmelden zum Antworten