title: C++ Eigen move arrayXXd to MatrixXd
body: <p>I want to move(or swap) an array of type Eigen::ArrayXXd to Eigen::MatrixXd.
  To achieve this, I tried,</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;Eigen/Dense&gt;
  using namespace std;
  int main(int , char** ) {
      Eigen::ArrayXXd array(100,100);
      auto mat2 = std::move(mat.matrix());
      cout &lt;&lt; array.size() &lt;&lt; endl;
      cout &lt;&lt; mat.size() &lt;&lt; endl;
  }
  </code></pre>
  
  <p>The output shows that the both sizes are 10000, which means array was copied.
  To avoid copy, I also tried, </p>
  
  <pre><code>    Eigen::MatrixXd mat;
      mat.swap(array.matrix());   (runtime error assert failure)
  //  swap(array.matrix(), mat);  (compile error)
  </code></pre>
  
  <p>The version of Eigen I tested is 3.2.0 beta1 and gcc 4.8.0 was used. From the experiment, it seems that the move semantic for Matrix and Arrays is not implemented yet. Is that right? </p>
  
  <p>Is there a way I can safely move (without copy)? </p>