В C ++ 11 введены лямбда-выражения, это можно использовать и в этом случае.
По сути, поток создается с использованием лямбды, где лямбда-функция вызывает функцию, которая затем разрешает тип шаблона.вычет должен иметь место.
thread one([counter]() { Threader(counter); });
Выше счетчик фиксируется по значению, но, как показывают некоторые ответы, захват по ссылке также может использоваться
#include <iostream>
#include <thread>
template <class T>
void Threader(T& counter)
{
counter++;
}
int main()
{
unsigned int counter = 100;
std::thread one([&counter]() { Threader(counter); });
one.join();
std::cout << counter;
}
Примечание : этот вопрос был помечен как дубликат, поэтому добавлено использование новых языковых функций.