Boost::Thread und member-Funktionen



  • kopfschüttler schrieb:

    Dies ist ein klarer Fall für std::bind(&A::funcB, this) .

    Das sehe ich nicht so. Was soll denn an

    std::bind(&A::funcB, this)
    

    viel besser sein als bei

    [this]{funcB();}
    

    ?

    Das Blöde bei dem Funktionszeigern ist noch, dass das nicht so schön funktioniert, wenn die Funktionen überladen sind. Mit Einzug von Move Semantics ist schon so mancher Elementfunktionszeiger-verwendender C++ Code kaputt gegangen, weil plötzlich so'was wie push_back überladen ist. Da ist das mit den Lambdas dagegen (zumindest in diesem Fall) eher schmerzfrei.

    Außerdem, wenn du schon std::bind verwendest, kannst Du auch gleich den variadischen Konstruktor von std::thread ausnutzen. Dadurch wird ein bind auch überflüssig und es werden sogar move-only-Parameter korrekt unterstützt.


Anmelden zum Antworten