J'utilise le Runtime Concurrency avec Visual C++ 2010, et je suis intéressé par les capacités de parallel_invoke et task_group (parties de la PPL ou Parallel Patterns Library). Je voudrais être en mesure de démarrer deux actions parallèles via des objets de fonction (plutôt que des fonctions lambda ou des pointeurs de fonction), mais je ne peux pas obtenir le code à compiler, en raison d'une erreur:Dans le Runtime de Concurrency, puis-je utiliser parallel_invoke ou task_group avec des objets fonction non-const?
error C3848: expression having type 'const C' would lose some const-volatile qualifiers in order to call 'void C::operator()(void)'
Mais si Je fais le C :: operator()() const, alors je perds beaucoup des avantages d'un objet fonction, à savoir, que son état est mutable et maintenu en interne entre les appels. Est-ce que j'ai râté quelque chose? Existe-t-il un moyen d'invoquer des objets fonction non-const en parallèle? Par ailleurs, je me rends compte que je pourrais utiliser le Asynchronous Agents Library, et dériver les classes de la classe Concurrency :: agent, mais veuillez considérer cela au-delà de la portée de cette question (en partie en raison du manque de gestion des exceptions et des options d'annulation). Je m'intéresse simplement à ce que je peux faire avec la PPL, et bien qu'il y ait des exemples avec des fonctions lambda et des pointeurs de fonction, je n'ai pas pu trouver ou créer d'exemples avec des objets fonctionnels qui font plus qu'un parallèle Monde". Je cherche quelque chose qui tire vraiment parti des objets de fonction, et, si possible, également des conteneurs concurrents.
Pourriez-vous terminer cette deuxième phrase. Il se termine par "potentiel de survivre à", vraisemblablement foncteur. BTW, a regardé certaines de vos vidéos sur Channel 9 récemment, et les aime. Excellent travail, et merci d'avoir regardé le forum de stackoverflow! –