I think I know the answer to this question.
If I have a typed pointer to [code]std::aligned_storage_t<sizeof(T), alignof(T)>[array_size_], I can't do any pointer arithmetic, can I?
By which I mean, this code is technically undefined behavior because the POD-type returned from aligned_storage makes no guarantees about the overall maximum size of each element:
Code:
std::aligned_storage_t<sizeof(T), alignof(T)> data[N];
T* ptr = reinterpret_cast<T*>(data);
ptr[1] = /* ... */; // oh no! This is UB!
Am I correct in my assumptions?