title: Double free or corruption after queue::push
body: <pre><code>#include &lt;queue&gt;
  using namespace std;
  
  class Test{
      int *myArray;
  
          public:
      Test(){
          myArray = new int[10];
      }
  
      ~Test(){
          delete[] myArray;
      }
  
  };
  
  
  int main(){
      queue&lt;Test&gt; q
      Test t;
      q.push(t);
  }
  </code></pre>
  
  <p>After I run this, I get a runtime error "double free or corruption". If I get rid of the destructor content (the <code>delete</code>) it works fine. What's wrong?</p>