Double (à deux dimensions) tableau à l'aide de std::unique_ptr

J'ai un double tableau alloué par pointeur de pointeur.

  //pointer to pointer
  int **x = new int *[5];   //allocation
  for (i=0; i<5; i++){
      x[i] = new int[2];
  }

  for (i=0; i<5; i++){      //assignment
      for (j=0; j<2; j++){
          x[i][j] = i+j;
      }
  }

  for (i=0; i<5; i++)   //deallocation
      delete x[i];
  delete x;

Je suis en train de faire cela à l'aide de unique_ptr:

std::unique_ptr<std::unique_ptr<int>[]> a(new std::unique_ptr<int>[5]);
  for (i=0; i<5; i++)
      a[i] = new int[2];

mais a gardé une erreur en disant que no operator = matches these operands. Ce que je fais de mal ici?

OriginalL'auteur Evan | 2012-03-20