namespace myNameSpace { template<typename T> void functionName(T* cm, std::initializer_list<std::string_view> args) { ... } }
3 Réponses :
Tout d'abord, ce n'est pas la façon dont vous démarrez un fil. Vous l'appelez et transmettez le résultat comme un argument pour démarrer le fil. Mais, Vous écririez quelque chose comme ça à la place: p> void code> n'est pas un argument valide pour le démarrage d'un thread, ni une sorte d'expression utile en aucun sens.
std::thread(&myNameSpace::functionName<ClassName>, this, std::initializer_list<std::string_view>{"abc", "abc1"});
Ce que vous devez faire est p> Notez que la coulée explicite sur std :: thread code> reçoit un appel téléphonique comme premier paramètre, vous l'avez envoyé
vide code> (le résultat d'invocation de
myNamespace :: modeName code>).
std :: initialisizer_list code> est requise, comme
std :: initialiszer_list code> est un type non déductible. P> p>
Pour les threads Vous devez fournir des paramètres de référence de fonction et d'arguments dans la liste des arguments comme suit: Dans votre cas, vous devez fournir les arguments comme suit: p> std::thread(myNameSpace::functionName<ClassName>,this, std::initializer_list<std::string_view>({"abc", "abc1"}));
@George Nous avons une section entière consacrée aux réponses complètes avec des fonctionnalités de révision et d'acceptation par les pairs - veuillez l'utiliser! Survolez votre souris sur le lien "Ajouter un commentaire" pour voir quels commentaires ne sont pas pour; Envisagez également de prendre le Tour à nouveau pour actualiser vos connaissances sur la façon dont le modèle fonctionne. Merci!
Vous ne devez pas passer des listes d'initialisateur à travers les limites de threads comme celle-ci. Utilisez un type de conteneur approprié.
S'il vous plaît ne corrigez pas les erreurs pertinentes dans votre question. Il existe déjà des réponses expliquant l'erreur que vous avez fixée et votre édition invaliderait celles-ci. J'ai retourné votre édition.
Vous devez présenter votre code sous la forme d'un exemple de reproductible minimal , comme Ceci . Sauvez-nous de devoir le faire pour que vous puissiez voir le problème.
@Aseroids avec ailes Mon commentaire était juste pour mettre en surbrillance la syntaxe incorrecte (la mine ironiquement était également incorrecte) et le problème avec la création d'un fil temporaire. Je n'ai rien expliqué pour que cela ne soit tout simplement pas senti valable de poster comme une réponse (je l'ai supprimé de toute façon pour l'erreur susmentionnée) :).