I was just wondering, what is a good rule of thumb for industrial-grade code when deciding whether to use the std::array template vs a built-in array?
At this point the only benefit of a built-in array would be slightly more concise declaration syntax. But the functional benefits of std::array blow that out of the water.
As a rule of thumb, I'd say prefer std::array until you have a good reason to pick a built-in array.
I would also add that it really doesn't matter that much. If you have to support older compilers, then you don't have a choice, of course, since
std::array is only for C++11. Otherwise, you can use whichever you like, but unless you make only trivial use of the array, you should prefer
std::array just to keep things in line with other STL containers (e.g., what if you later decide to make the size dynamic, and use
std::vector instead, then you will be happy that you used
std::array because all you will have to change is probably the array declaration itself, and the rest will be the same, especially if you use
auto and other type-inference features of C++11.