C ++ 11: std :: thread dans une classe exécutant un membre de fonction avec initialisation de threads dans le constructeur

Je suis en train d'utiliser std::thread à partir de C++11. Je ne pouvais pas trouver n'importe où si c'est possible d'avoir un std::thread à l'intérieur d'une classe de l'exécution de l'un de ses membres de fonction. Prenons l'exemple ci-dessous...
Dans mon essai (ci-dessous), l'exécution de la fonction().

Je compile avec gcc-4.4 avec -std=c++0x drapeau.

#ifndef RUNNABLE_H
#define RUNNABLE_H

#include <thread>

class Runnable
{
    public:
        Runnable() : m_stop(false) {m_thread = std::thread(Runnable::run,this); }
        virtual ~Runnable() { stop(); }
        void stop() { m_stop = false; m_thread.join(); }
    protected:
        virtual void run() = 0;
        bool m_stop;
    private:
        std::thread m_thread;
};


class myThread : public Runnable{
protected:
    void run() { while(!m_stop){ /* do something... */ }; }
};

#endif //RUNNABLE_H

J'obtiens cette erreur et d'autres: même erreur avec et sans le $)

Runnable.h|9|error: no matching function for call to std::thread::thread(<unresolved overloaded function type>, Runnable* const)’|

Lors du passage d'un pointeur.

Runnable.h|9|error: ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say ‘&Runnable::run’|

source d'informationauteur Mooks