どうやら、現在のMSVC2012RCのstd::thread実装のstd::threadには最大数の引数があります。
このコードは、MSVCとg++の両方で-std= c++0xを使用して正常にコンパイルされます。
std::thread t = std::thread(printf, "%d, %d, %d, %d", 1, 2, 3, 4);
t.join();
ただし、6つを超える引数の場合、MSVCはエラーを返します。
std::thread t = std::thread(printf, "%d, %d, %d, %d, %d", 1, 2, 3, 4, 5);
t.join();
エラーC2661:'std :: thread :: thread':オーバーロードされた関数は7つの引数を取りません
これはどういうわけか意図されていますか?または、MSVC実装のバグですか?MSVCで可変個引数テンプレートがまだサポートされていないためですか?