Второй не позволит скопировать его в новый неконстантный массив
boost::array<const int, 2> y = {0, 1};
boost::array<int, 2> y1 = y; // error!
Поскольку я ожидал, что это сработает, я, вероятно, выбрал бы первый вариант. Передача второго в шаблоны, которые ожидают boost::array<T, N>
, не позволит этим шаблонам изменять свой параметр (даже если это копия). Первый будет «просто работать», так как параметр будет иметь тип boost::array<int, 2>
.