array 不允许用花括号包围的值列表进行赋值是什么意思?

     array<int, 4> a;
    a = { 1,2,3,4 };

上面的能通过编译。
《C++ Primer》第五版,中文版。302 页。

以编译器的结果为准。

需要用花括号初始化。
array = {1,2,3,4}

不一定,以前的编译器有可能不是标准C++,比如VC6.0
array a = { 1,2,3,4 };
你可以这样试试;

C++11新增了模板类array
{}初始化的方法,仅被最新的C++11标准支持,有个专门的术语:initializer-list
在不支持c++11的编译器上会报错

C++11标准支持上面的写法,但是有的编译器不支持C++11。所以编译会失败