diff --git a/src/corelib/tools/qvarlengtharray.h b/src/corelib/tools/qvarlengtharray.h index a810f00b30..fd3d4ffbf2 100644 --- a/src/corelib/tools/qvarlengtharray.h +++ b/src/corelib/tools/qvarlengtharray.h @@ -65,10 +65,18 @@ QT_BEGIN_NAMESPACE template class QVLAStorage { + template class print; protected: ~QVLAStorage() = default; - std::aligned_storage_t array[Prealloc]; + alignas(Align) char array[Prealloc * (Align > Size ? Align : Size)]; + QT_WARNING_PUSH + QT_WARNING_DISABLE_DEPRECATED + // ensure we maintain BC: std::aligned_storage_t was only specified by a + // minimum size, but for BC we need the substitution to be exact in size: + static_assert(std::is_same_v[Prealloc])>, + print>); + QT_WARNING_POP }; class QVLABaseBase