SH
Size: a a a
SH
SH
7) in a function call expression, with braced-init-list used as an argument and list-initialization initializes the function parameter
SH
SH
AB
DS
SA
B* C::* -> D* C::*
при условии, что B - невиртуальный предок D, а приводимое значение в действительности указывает на поле C типа D* (т.е., по сути, обычный Base* to Derived*, однако, с сохранением информации о том, что сам указатель хранится в поле произвольного C). static_cast
и dynamic_cast
такого функционала не предоставляет, reinterpret_cast
слишком либерален, т.к. готов, согласно 7.6.1.10/10 осуществлять любые приведения вида T1 C1::* -> T2 C2::*
, где T1 и T2 либо оба объекты, либо функции. Я что-то упускаю, кроме того факта, что наличие таких приведений в архитектуре в принципе нежелательно?CD
B* C::* -> D* C::*
при условии, что B - невиртуальный предок D, а приводимое значение в действительности указывает на поле C типа D* (т.е., по сути, обычный Base* to Derived*, однако, с сохранением информации о том, что сам указатель хранится в поле произвольного C). static_cast
и dynamic_cast
такого функционала не предоставляет, reinterpret_cast
слишком либерален, т.к. готов, согласно 7.6.1.10/10 осуществлять любые приведения вида T1 C1::* -> T2 C2::*
, где T1 и T2 либо оба объекты, либо функции. Я что-то упускаю, кроме того факта, что наличие таких приведений в архитектуре в принципе нежелательно?SA
reinterpret_cast
, как я написал выше, однако, он допускает вообще практически любое преобразование подобной формы, вот я и интересуюсь, есть ли какой-то более строгий способ.CD
reinterpret_cast
, как я написал выше, однако, он допускает вообще практически любое преобразование подобной формы, вот я и интересуюсь, есть ли какой-то более строгий способ.CD
reinterpret_cast
, конечно, совершенно не гарантирует, что результатом можно будет пользоватьсяMK
SA
reinterpret_cast
возможно, т.к. по смещению реально лежит указатель на Derived*.D
Read()
и Write()
), работает в агрессивной многопоточной среде, сами методы lock-freeАВ
D
DS
P
Read()
и Write()
), работает в агрессивной многопоточной среде, сами методы lock-free