+ 1
ref in thread
Hi Please refer below code: https://code.sololearn.com/cA17a5A8a10a I was asked to answer why thread object does not take argument without ref. I mean why thread t(incrementVal,x); does not compile. I tried to understand error populated on SL, but could not understand. Can anyone suggest why ref is required unlike normal function call?
1 Resposta
+ 1
That's because arguments of thread function are copied (or moved) by value, so in order to pass a reference to it, you would need to use reference_wrapper ( via std::ref() or std::cref() )
You can also see this in documentation of thread (from cppreference) 👇
https://en.cppreference.com/w/cpp/thread/thread/thread#Notes