title: Thread base class using C++11
body: <p>Since I am new to C++11 I am looking for a proper implemtnation of a thread base class using the C++11 multithreaded features with passing arguments to the class, starting and stoping the thread... .
  So something like this one:
  <a href="http://www.codeproject.com/Articles/21114/Creating-a-C-Thread-Class" rel="nofollow">http://www.codeproject.com/Articles/21114/Creating-a-C-Thread-Class</a>
  but with C++11 to gain OS-independence.</p>
  
  <p>I've googled for it but haven't found anything useful.
  Perhaps someone is familiar with a good open-source implementation?</p>
  
  <p><strong>EDIT</strong>
  To explain my question precisely:
  I am already aware of <code>std::thread</code>, but my intention respectively goal is to use a wrapper-class for <code>std::thread</code> to not deal with it heavily. I'm currently using the class-structure below (since 1-year). But I'm stucked respectively bounded to the Windows-APIs which is not what I want.</p>
  
  <pre><code>class ThreadBase {
  public:
      ThreadBase();
      virtual ~ThreadBase();
  
      // this is the thread run function, the "concrete" threads implement this method
      virtual int Run() = 0;
  
      // controlling thread behaviour, Stop(), Resume()  is not that necessary (I implemented it, beacuse the API gives me the opportunity)
      virtual void Start() const;
      virtual void Stop() const;
  
      // returns a duplicated handle of the thread
      virtual GetDuplicateHdl() const; //does std::thread give me something similar to that?
  
  protected:
          // return the internal thread handle for derived classes only
      virtual GetThreadHdl() const;
      //...block copy constructor and assignment operator
  
  private:
          // the thread function
      void ThreadFunc(void * Param); //for Windows the return value is WINAPI
      //THandleType? ThreadHdl;
      unsigned long ThreadId;
  };
  </code></pre>