1
スレッド化ビルディングブロック(fractal.cpp)に含まれるフラクタルの例を見て、このコンストラクタを思いついた。不思議なことに、私は関数内で2つの引数を渡すだけです。私が3つのパラメータにそれを増加させる場合、これはコンパイルに失敗します。私はそれも元のケースで失敗するはずだと思う - しかし、それはしません。なぜ2つのパラメータだけでも失敗しないのですか?または、3つのパラメータを使用するにはどうすればよいですか?std :: thread with tbb - 2つ以下の引数を持つビルド
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <vector>
#include <tbb/compat/thread>
void tt(int, int); //, int) ;//fails if 3rd int added
int main(int argc, char** argv) {
int numthreads = 4 ;
int inta = 0 ;
int intb = 1 ;
std::vector <std::thread *> mythreads(numthreads) ;
int ic ;
for (ic = 0; ic < numthreads-1 ; ++ic)
{
mythreads[ic] = new std::thread(tt,ic, inta) ; // , intb) ;
}
tt(ic, inta) ; //, intb) ;
for (int ic = 0 ; ic < numthreads-1 ; ++ic)
mythreads[ic]->join() ;
std::cout << "all done" << std::endl ;
}
void tt(int myid, int intb) // , int intc)
{
std::cout << "entry " << myid << std::endl ;
}'