Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,990 questions

51,935 answers

573 users

How to pass reference to thread in C++

2 Answers

0 votes
#include <iostream>
#include <thread>
#include <string>

using std::cout;
using std::endl;

void threadFunction(int const &n)
{
	int &i = const_cast<int &>(n);
	i++;
	
	cout << "threadFunction n = " << n << endl;
}
int main()
{
	int n = 10;

	cout << "main() n = " << n << endl;

	std::thread obj(threadFunction, n);
	obj.join();

	cout << "end main() n = " << n << endl;

	return 0;
}

/*
run:

main() n = 10
threadFunction n = 11
end main() n = 10

*/

 



answered Feb 7, 2018 by avibootz
0 votes
#include <iostream>
#include <thread>
#include <string>

using std::cout;
using std::endl;

void threadFunction(int const &n)
{
	int &i = const_cast<int &>(n);
	i++;
	
	cout << "threadFunction n = " << n << endl;
}
int main()
{
	int n = 10;

	cout << "main() n = " << n << endl;

	std::thread obj(threadFunction, std::ref(n)); // ref(n));
	obj.join();

	cout << "end main() n = " << n << endl;

	return 0;
}

/*
run:

main() n = 10
threadFunction n = 11
end main() n = 11

*/

 



answered Feb 7, 2018 by avibootz

Related questions

1 answer 153 views
153 views asked Feb 6, 2018 by avibootz
1 answer 78 views
78 views asked Dec 19, 2024 by avibootz
1 answer 105 views
2 answers 130 views
130 views asked Aug 22, 2022 by avibootz
3 answers 226 views
226 views asked May 12, 2021 by avibootz
...