1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
#include <iostream>
#include <thread>
using namespace std;
//main
struct Demo
{
int d_value = 0;
void fun(int value)
{
d_value = value;
cout << "fun sets value to " << value << "\n";
}
};
int main()
{
Demo demo;
thread thr{&Demo::fun, ref(demo), 12 };
thr.join();
cout << "demo's value: " << demo.d_value << '\n'; // 12
thr = thread{&Demo::fun, &demo, 42 };
thr.join();
cout << "demo's value: " << demo.d_value << '\n'; // 42
thr = thread{&Demo::fun, demo, 77 };
thr.join();
cout << "demo's value: " << demo.d_value << '\n'; // 42: the thread
// copied demo
}
//=
|