#include
#include
#include
#include
using namespace std;
void f(const vector& coll)
{
Is coll
guaranteed to be valid before exiting this function?
coll
to the constructor of a std::thread
in main
function, because coll
is an object, it is decay
copied. This decay
copy essentially move
s the vector (so it becomes rvalue), which will bind to the coll
parameter in f
during the execution of the thread. (Thanks for the comment by @Praetorian)Is it safe to pass arguments by reference into a std::thread
function?
decay
copied, so you actually never pass anything by reference to std::thread
.Reference for std::decay
: http://www.cplusplus.com/reference/type_traits/decay/
std::thread