Шаблоны классов, относящиеся к std::valarray<T>
, предназначены для поддержки методов оптимизации, известных как шаблоны выражений . Я не пытался сделать это, но я понимаю, что спецификация не требует этого, а также не достаточно поддерживает это. В целом std::valarray<T>
является довольно специализированным классом, и он не очень широко используется. Кроме того, я думаю, что поддержка аргументов шаблона для std::valarray<T>
является ограниченным набором (например, числовые встроенные типы).
С другой стороны std::array<T, n>
- массив с фиксированным размером, поддерживающий, насколько это возможно, при фиксированном размере обычный интерфейс контейнера. По сути, std::array<T>
является более удобной для использования версией T[n]
.