Если оператор перегружен для класса C++, как я мог бы вместо этого использовать оператор по умолчанию?
_com_ptr_ имеет перегруженный оператор &() с побочным эффектом. Если у меня есть переменная:
_com_ptr_t<Interface> variable;
Как я могу получить его адрес (указатель _com_ptr_t
3 ответа
Решение
Я видел этот случай всплывающим на собрании ISO, поскольку он нарушал некоторые реализации макроса offsetof() (LWG 273). Решение: &reinterpret_cast<unsigned char&>(variable)
Я определяю эту функцию полезности:
template<typename T>
T *GetRealAddr(T &t)
{ return reinterpret_cast<T*>(&reinterpret_cast<unsigned char &>(t)); }