Я работаю на функцию для кодового что я не могу изменить (за исключение того, что я пишу), и есть некоторые типов здесь:делает непреложный тип изменяемым (consts и подталкивание)
// Pointer to a mutable thingy
typedef boost::shared_ptr<Thingy> MPtr;
// Pointer to an immutable thingy
typedef boost::shared_ptr<const Thingy> Ptr;
сейчас , У меня есть объект типа MPtr, который мне нужно назначить объекту типа Ptr, но я не могу (компилятор говорит мне, что нет возможного преобразования). Использование const_cast также не помогает:
MPtr foo = const_cast<MPtr*>(moo);
У меня ошибка, говоря, что он не может изменить базовый тип. Любые идеи о том, как я могу обойти эту проблему?
Как хакеры вы хотите получить? Если вы берете адрес moo, а затем используете стиль C, и разыгрываете, что вы должны быть хорошими. MPtr foo = (Mptr) &moo; – RandyGaul
Является ли 'Thingy'' typedef' или '# define'? Является ли 'Thingy' той же строкой в обоих местах? – Yakk