У меня есть фрагмент кода, в котором я использую boost::unsafe_any_cast<void*>(&boost::any anyInstance)
для получения указателя содержимого объекта boost::any
.
Код это ниже:
boost::any staticResult; //contains a private pointer called content
f(staticResult); //makes the content pointer a null pointer
void* voidStaticResult = boost::unsafe_any_cast<void*>(&staticResult);
К сожалению, при отладке я вижу, что указатель содержимого в staticResult равен NULL (0x00000000), а voidStaticResult - 0x00000004.
(Видимо, для этого нет причин. У вас есть идеи?)
EDIT: функция f () вызывает dll, создающую экземпляр объекта. Экземпляр указывается указателем содержимого staticResult. Мне нужно передать указатель на другую функцию, но мне кажется, что нет простого способа «привести» boost :: any к указателю на экземпляр класса. Любое другое решение было бы замечательно.