Прочитал несколько строгих вопросов о псевдонимах, таких как Приведение массива байтов к POD или Псевдоним ` T*` с `char*` допускается. Разрешено ли и наоборот?
Из них я делаю вывод, что единственный законный способ доступа к ячейке памяти, объявленной как любой тип (в частности, (массив) char
) в качестве другого типа, заключается в вызове размещения new на нем, так как это изменило бы динамический тип.
Поскольку std::aligned_storage обычно должен иметь базовый тип, отличный от предполагаемого use, мне кажется, невозможно использовать хранилище, не вызвав сначала размещение на нем new.
Так что мне не разрешили бы создатьalign_storage, например. двойник и использовать его как двойник с помощью приведения указателя? Или, скорее, прежде чем мне будет разрешено обращаться к памяти как к двойнику с помощью приведения указателя, мне нужно будет сделать для нее новое размещение, «превратив его в» динамический объект типа double?
[basic.life]
- person Ben Voigt   schedule 11.01.2017std::aligned_storage
не особенный, поэтому это обман stackoverflow.com/questions/37644977/. Можешь проверить, не думаешь ли ты, что здесь происходит что-то еще? - person   schedule 11.01.2017