array< atomic_size_t, 10 > A;
Neither atomic_init(A,{0}) nor A = {ATOMIC_VAR_INIT(0)} seem to work, returning an un
std::array arr = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
or if you can compile for C++11
std::array arr{{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0} }}; // double braces required
Example: https://www.ideone.com/Mj9kfE
Edit:
It just occurred to me that you are trying to store atomics, which are not copyable, into a collection that would require they be copyable (Note: I can't get to my copy of the standard at the moment. I know this holds true for the other collections, but I'm unsure if it holds true for std::array as well).
A similar problem was posted a while back: Thread-safe lock-free array