Я хочу знать гарантии выравнивания статически выделенного массива char
. Рассматривая другие вопросы SO, я нашел некоторые относительно динамически распределенных массивов char
.Гарантии выравнивания статического массива char
Для статически выделенных массивов char
они выровнены так, что я могу разместить в нем новый тип (при условии, что он достаточно велик)? Или это относится только к динамически распределенным?
char buff[sizeof(T)];
T * pT = (T*) buff;
new(pT) T(); // well defined?
...
pT->~T();
Если нет, то как я могу решить эту проблему?
Я считаю, что ** C++ 11 ** гарантирует это ** ** C++ 03 **. Я позволю кому-то еще опубликовать фактический ответ с кавычками из стандарта. –
boost :: optional? – Puppy
@ K-ballo: Я не думаю, что C++ 11 гарантирует это. Он добавил 'alignas' для этой цели. – Nawaz