int b[] { 1, 2, 3 } ; // array of three int
int (&a)[3] = b ; // fine: lvalue reference to array of three int
// int c[3] = b ; // *** error: arrays can't be copy initialised
std::array<int,3> d { { 1, 2, 3 } } ;
std::array<int,3> e = d ; // fine: std::array can be copy initialised
d = e ; // fine: std::array can be copy assigned