Re: Ужас под заголовком C++11 FAQ
От: vdimas Россия  
Дата: 21.10.11 00:02
Оценка:
Здравствуйте, Caracrist, Вы писали:

C>new(&s)(w.s); — такое в операторе присваивания, это бесплатное пособие по UB


Наоборот, если слева мусор при присваивании (а с т.з. строки там мусор), то только так: инициализируем на мусоре новый объект. Иначе получим прогулку по памяти.

Мне непонятно, причем здесь C++11?
Re[6]: Ужас под заголовком C++11 FAQ
От: gegMOPO4  
Дата: 21.10.11 08:54
Оценка:
Здравствуйте, Masterkent, Вы писали:
M>Все эти хитрые манипуляции с памятью можно выполнять с помощью std::aligned_union или даже std::aligned_storage. Причём аналог boost::variant (который, в отличие от union-ов, достаточно высокоуровневый, чтобы им было удобно пользоваться), насколько я вижу, удобнее реализовывать именно через std::aligned_union, а не union-ы. Иными словами, для низкоуровневых операций вполне сгодится std::aligned_union, для высокоуровневых — какая-нибудь обёртка вокруг std::aligned_union. Чего ради надо было расширять возможности union-ов, непонятно (с учётом того, что std::aligned_union появилось раньше — см. N2369). Ещё интереснее то, что std::aligned_union собирались из стандарта выпилить, но потом одумались

Ну значит из эстетических соображений.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.