Надо чтобы возвращаемое значение с можно было использовать как-то в int main(). Как в случае передачи аргументов функции в поток принять возвращаемое значение функции для дальнейших операций с ней?
int tr (int a, int b)
{
int c = a + b
return c;
}
int main()
{
int a = 4;
int b =5;
mutex mtx;
thread t1(tr, a, b, ref(mtx));
return 0;
}
Воспользуйтесь не потоком, а async:
auto fut = async(tr,a,b);
...
int result = fut.get();
Примерно так.
Значение, возвращаемое в функции, связанной с потоком std::thread, игнорируется. То есть при имеющейся сигнатуре вернуть его в main не получится. Нужно либо передать его как ссылочный аргумент std::ref с модификацией сигнатуры и последующим ожиданием завершения потока через join, либо использовать упомянутый в соседнем ответе std::async.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости