Beim Erstellen eines Threads, der eine Memberfunktion aufruft, besteht ein Unterschied zwischen der Übergabe eines Zeigers an die aktuelle Klasse oder der Übergabe einer Referenz?std :: thread constructor Gibt es einen Unterschied zwischen der Übergabe eines Zeigers und der Übergabe an ref?
Verhält sich method1 im folgenden Beispiel genauso wie method2? Gibt es Unterschiede?
class MyClass
{
public:
MyClass(){};
~MyClass(){};
void memberFunction1()
{
//method 1
std::thread theThread(&MyClass::memberFunction2, this, argumentToMemberFunction2)
//method 2
std::thread theThread(&MyClass::memberFunction2, std::ref(*this), argumentToMemberFunction2)
}
void memberFunction2(const double& someDouble){};
}
Angenommen es kompiliert, sollte es nicht sein. Referenzen sind syntaktischer Zucker für Zeiger. Das heißt aber nicht, dass es den Compiler nicht vermasseln könnte, da es syntaktisch zweifelhaft ist, den 'std :: ref'' reference_wrapper' zu übergeben, wenn der Aufruf (intern) mit 'this' als Zeiger als erstes Objekt ausgeführt wird. – ShadowRanger