Passer plusieurs arguments à une fonction filetée

J'ai une fonction appelée workForThread, qui prend deux arguments, et renvoie void. J'aimerais les enfiler cette fonction en utilisant quelque chose comme:

thread(workForThread,a,b);

a et b sont les types appropriés. Le code ci-dessus ne compile pas, en donnant un "trop d'arguments pour appeler" erreur ("erreur C2197: 'void (__cdecl *)(char *)' : trop d'arguments pour call")

Comment puis-je résoudre ce problème?

Remarque: j'ai regardé ces deux questions, mais les résolutions qui y travaillent ne semble pas fonctionner pour moi. En outre, j'ai le sentiment qu'il y est un moyen de le faire construit en c++11, et c'est ce que je suis à la recherche d'.

C++11 thread a un (modélisé) constructeur qui fait exactement cela.
Alors pourquoi est-il me donner cette erreur?
Quelle est la version de VS en avez-vous? Peut-être qu'il ne supporte pas que.
Pas familier avec VS, mais je pense que cette version devrait fonctionner, et je pense que le message d'erreur semble très étrange. Quelle est la signature de la fonction que vous utilisez?
Le vote pour la fermer, car le vrai problème est dans le code de l'OP ne nous montre pas.

OriginalL'auteur soandos | 2012-05-07