I have a problem relating to template functions and threads:
template
void Threader(TYPE_size counter)
{
counter++;
}
int main()
C++11 introduced lambdas, this can be used in this case as well.
Basically, the thread is created with the use of a lambda, where the lambda calls the function that then allows template type deduction to take place.
thread one([counter]() { Threader(counter); });
Above, the counter is captured by value, but as some of the answer suggest, a capture by reference can also be used
#include
#include
template
void Threader(T& counter)
{
counter++;
}
int main()
{
unsigned int counter = 100;
std::thread one([&counter]() { Threader(counter); });
one.join();
std::cout << counter;
}
Note: this question was flagged as a duplicate, hence the addition with the use of newer language features.