title: Default move constructor with mutex member
body: <p>I have a class with deleted copy constructors and I'm trying to put a mutex member in something like this:</p>
  
  <pre><code>struct A {
      A(const A &amp;other) = delete;
      A&amp; operator=(const A &amp;other) = delete;
      A(A&amp;&amp; other) = default;
      A&amp; operator=(A &amp;&amp;other) = default;
  
      std::mutex lock;
  };
  </code></pre>
  
  <p>The compiler is complaining that I'm trying to call the deleted copy constructor, which I summarise to be due to the std::mutex type being non-movable. How can I make the mutex member play with the move constructors with minimal fuss? I don't actually want to move the mutex member itself into the newly constructed object, and would actually like each moved object to just construct it's own mutex</p>