Wird folgende Methode wahrscheinlich com Compiler als inline betrachtet werden?



  • Hallo!

    Angenommen ich spreche folgende Empfehlung aus:

    inline bool MiddleButtonReleased(){ return (mousedata.dwOfs == DIMOFS_BUTTON2 && !mousedata.dwData) ? true : false; };
    

    Ich weiß es ist Compilerabhängig, aber wie groß ist wohl die Wahrscheinlichkeit das das wirklich eine inlineMethode wird? Ansonsten würde ich mir das nämlich sparen und besser lesbar in die cpp schreiben.



  • inline bool MiddleButtonReleased()
    {
        return (mousedata.dwOfs == DIMOFS_BUTTON2 && !mousedata.dwData);
    }
    


  • Mach es so, wie es besser lesbar ist. Der Compiler interessiert sich im Allgemeinen nur im äußersten Grenzfall überhaupt dafür, ob du jetzt inline geschrieben hast oder nicht.
    Der Linker kann obj-übergreifend inlinen. Bei diesem Fall würde ich ziemlich sicher davon ausgehen, dass diese Methode inline sein wird.



  • @Optimizer danke!

    lesbar... schrieb:

    inline bool MiddleButtonReleased()
    {
        return (mousedata.dwOfs == DIMOFS_BUTTON2 && !mousedata.dwData);
    }
    

    Jetzt grübel ich, ist so etwas schlechter Stil? Irgendwie ist es ja elegant? Was meint ihr, ist so etwas legitim :D? Ich hadere gerade mit mir



  • Was soll daran nicht passen? Ich finde es auf jeden Fall schöner als dein (unnötiges!) '? :'



  • schon allein deshalb, weil der compiler am ende eh den ?: operator wegoptimieren wird, es den code unlesbar macht, und der op== eh schon als returnwert bool hat, würde ich deine methode nicht benutzen 🙂



  • das was du im ersten beitrag gemacht hast ist einfach nur sau dumm. das zeigt das du ? : irgendwie nicht richtig verstanden hast.



  • @inliner
    Was meinst du mit 'schlechter Stil'?
    Naja, du kannst ja noch die Klammerung beim return wegmachen, dann sieht es noch eleganter aus. 😃


Anmelden zum Antworten