Welche Vorteile bieten Inline Funktionen gegenüber Makros ??



  • krümelkacker schrieb:

    CSpille schrieb:

    Dass
    std::cout << (++a >= b ? ++a : b) << std::endl;
    undefiniertes Verhalten verursacht, ist mir auch klar...

    Da irrt ihr Euch (Du und Janjan). Das Verhalten ist hier wohldefiniert. Der ternäre Operator garantiert eine Ordnung. Das Fragezeichen ist sozusagen ein Sequenzpunkt. Was links davon steht, wird komplett ausgewertet (inklusive Erhöhen von a) bevor genau ein Teil der rechten Seite ausgewertet wird.

    Ähnliche Garantien gibt es bei && , || und dem Sequenzoperator , -- sofern es sich nicht um benutzerdefinierte Funktionen (überladene Operatoren) handelt.

    kk

    Cool...
    Das ist wirklich ne neue Info

    thx,
    krümelkacker



  • krümelkacker schrieb:

    Ging es nicht um den Vergleich inline-Funktion <-> Makro? Gegenüber Makros bieten inline-Funktionen keine Nachteile bzgl Kapselung, oder? Ist doch eher umgekehrt.

    Naja, man kann jetzt einen niedrigen Standard ansetzen, z.B. Makros, und sagen wie toll ich doch demgegenueber bin. Das macht es nicht sinnvoller. Das ist Kritik an der Frage, nicht an den Antworten.


Anmelden zum Antworten