Frage zur einfacheren Schreibweise von class templates



  • hi alle,
    im moment schreibe ich eine klasse mit templates so

    template <typename U>
    class A
    {
         U var;
         U do_sth();
         U do_sth2();
         //viele andere
    }
    
    template <typename U>
    A<U>::do_sth()
    {
         //irgendwas machen
    }
    
    template <typename U>
    A<U>::do_sth2()
    {
         //mach auch was
    }
    
    /*...*/
    

    Existieren sie und, wenn ja, welche möglichkeiten gibt es das häufige schreiben von template <typename U> zu vermeiden (auch wegen der Übersichtlichkeit)

    danke für alle Antworten



  • Fencer schrieb:

    Existieren sie und, wenn ja, welche möglichkeiten gibt es das häufige schreiben von template <typename U> zu vermeiden (auch wegen der Übersichtlichkeit)

    Die einzigen Möglichkeiten die mir einfallen sind:
    a) Die Methoden inline schreiben
    b) [unschön] Mithilfe von Makros

    Ganz davon abgesehen das deinen Methoden der Rückgabewert fehlt, was nach C++ Standard nicht zulässig ist.



  • Naja, da Du ja in 99,99% der Fälle sowieso die Implementation nicht wirklich auslagern kannst, kannst Du ja auch gleich inline definieren
    ...

    template <typename U>
    class A
    {
         U var;
         U do_sth() {
            //irgendwas machen
         }
         U do_sth2() {
            //mach auch was
         }
         //viele andere
    };
    

    Gruß,

    Simon2.



  • inline implementieren

    template <typename U>
    class A
    {
         U var;
         U do_sth()
         {
             //irgendwas machen
         }
         U do_sth2()
         {
             //irgendwas anderes machen
         }
         //viele andere
    }
    


  • ok thx

    asc schrieb:

    Ganz davon abgesehen das deinen Methoden der Rückgabewert fehlt, was nach C++ Standard nicht zulässig ist.

    beispiel zu schnell geschrieben 😉


Anmelden zum Antworten