std::array<T,N>并且boost::array<T,N>是标准布局聚合,只包含一个数组T[N].
它们与相互作用namespace boost和namespace std可以是不同的(即,ADL会发现std对于功能std::array和boost功能boost::array).
所以,如果有一个函数foo中boost,调用foo(some_array),如果可能的工作some_array是从boost,而不是如果它是从std.
唯一的集装箱算法目前std是std::begin和std::end(以及类似换新size empty等,如果你有近未来的).范围v3(或任何已发布的)可能会添加更多.
有boost比以往更多的容器算法std.其中一些可能无法构建.
在最坏的情况下,有人可以编写一个与容器算法同名的函数boost,其中一个参数可以隐式转换std::array,并且对该函数的非限定调用可能会在您更改变量类型之后导致转换,而之前它称为boost容器算法.
类似地,有人可以编写显式检查模板参数是否为a的代码,如果是boost::array,则表现不同.
这两个都有点延伸.
最后,std::array有现代noexcept装饰,并且boost有一个c_array你可以得到的公共成员(名字std::array成员变量是,我相信,没有指定).(通过@Potatoswatter).我个人希望std::array得到更好的支持,boost::array因为std缺乏功能主要存在.
除了那些角落的情况,std::array应该是直接替代.