std::ref(*this) aber warum?
-
Hey Leute ich habe mir kürzlich einen Source Code von einem Programm angesehen und habe diesen Code als Parameter übergabe gesehen:
std::ref(*this)und frage mich was der machen soll. Aus dem Code heraus sieht man den this pointer doch mehr verstehe ich auch nicht.
Freue mich auf eine Antowrt...
-
Ich kenne std::ref() nur von std::threads oder std::async.
Standardmäßig wird dort nämlich selbst, wenn die Funktion die aufgerufen wird eine Referenz erwartet immer eine Kopie von dem Objekt gemacht und falls man wirklich eine Referenz übergeben möchte muss man die Variable/Objekt in einem std::ref Objekt wrappen.
Der Code den du gepostet hast übergibt, dass this Objekt in einem reference wrapper an eine Funktion.
-
Ein anderer, möglicher Grund ist das
std::reference_wrapper<>'soperator()INVOKE anwendet.