title: Double (two-dimensional) array using std::unique_ptr
body: <p>I have a double array allocated by pointer to pointer.</p>
  
  <pre><code>  // pointer to pointer
    int **x = new int *[5];   // allocation
    for (i=0; i&lt;5; i++){
        x[i] = new int[2];
    }
  
    for (i=0; i&lt;5; i++){      // assignment
        for (j=0; j&lt;2; j++){
            x[i][j] = i+j;
        }
    }
  
    for (i=0; i&lt;5; i++)   // deallocation
        delete x[i];
    delete x;
  </code></pre>
  
  <p>I am trying to do this using <code>unique_ptr</code>:</p>
  
  <pre><code>std::unique_ptr&lt;std::unique_ptr&lt;int&gt;[]&gt; a(new std::unique_ptr&lt;int&gt;[5]);
    for (i=0; i&lt;5; i++)
        a[i] = new int[2];
  </code></pre>
  
  <p>but kept getting an error saying that <code>no operator = matches these operands</code>. What I am doing wrong here?</p>