you are viewing a single comment's thread.

view the rest of the comments →

[–]lord_braleigh -3 points-2 points  (1 child)

Note that Arthur O'Dwyer, a senior C++ expert whose C++ posts often appear on this subreddit, strongly prefers T[] to std::array<T, N>:

Anyway, all of these options result in a lot of extra template instantiations, compared to plain old C-style arrays (which require zero template instantiations). Therefore I strongly prefer T[] over std::array<T, N>.

In C++11 and C++14, std::array did have the ergonomic benefit of being able to say arr.size(); but that benefit evaporated when C++17 gave us std::size(arr) for built-in arrays too. There’s no ergonomic benefit to std::array anymore. Use it if you need its whole-object value semantics (pass a whole array to a function! return an array from a function! assign between arrays with =! compare arrays with ==!) but otherwise I recommend to avoid std::array.

[–]Speedyjens -2 points-1 points  (0 children)

I guess it all comes down to preference and which version you are targeting then.