const&



  • kann mir jemand in worten erklären, was hier gemacht wird? (bitte dabei auf T und const& eingehen). ich weiss das die funktion den größert zurückliefert. aber wozu das "inline"? mit const wird ja irgendwie gesagt, dass der wert nicht verändert wird, oder wie? und wozu das und-zeichen dahinter?

    template <typename T>
    inline T const& max (T const& a, T const& b) 
    { 
        // if a < b then use b else use a 
        return a<b?b:a; 
    }
    


  • Das & bedeutet, dass das Objekt beim Übergeben nicht kopiert wird, sondern dass die Funktion auf dem Original arbeitet. Das kann effizienter sein, wenn T ein ziemlich großer Typ ist, der aufwändig zum kopieren wäre. Das inline erlaubt es, die Funktion in den Header zu schreiben. Da es aber ein Template ist, würde das sowieso gehen. Amsonsten hat das inline heute keine große Bedeutung mehr, du könntest im Grunde vorerst darauf verzichten.


Anmelden zum Antworten