C++ 11 : Démarrer le thread avec la fonction de membre et ce en tant que paramètre

L'aide de ce code, je l'ai eu et erreur :

Erreur 1 erreur C2064: terme n'évalue pas à une fonction prenant 1 arguments c:\program files (x86)\microsoft visual studio 11.0\vc\include\fonctionnelle 1152 1 Pipeline

class PipelineJob {
private:
    std::thread *thread;
    void execute(PipelineJob* object);
public:

    void execute(PipelineJob* object)
    {
    }

    PipelineJob()
    {
        this->thread = new std::thread(&PipelineJob::execute, this);
    }
};

J'ai essayé beaucoup de variation, tout un maintenant comment résoudre ce problème?

  • La conception avec des pointeurs et new est ridicule et terrible. Vous devez utiliser un constructeur de liste d'initialiseur.
  • Aussi, votre code n'a pas de sens. Est PipelineJob d'une classe ou d'un modèle?
  • hmm, j'ai essayé avec la liste d'initialisation, mais j'étais encore une erreur de construire parce que j'essayais de l'accès le constructeur par défaut qui n'existe pas.
  • J'ai enlevé tous les code pas utile pour le problème.
  • double possible de Démarrer le thread avec la fonction de membre
  • Pourquoi est - execute déclarée deux fois?

InformationsquelleAutor | 2013-05-23