0

我正在为我无法更改的代码库开发一项功能(除了我正在编写的内容),这里有一些类型:

// 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);

我收到一条错误消息,说它无法更改基础类型。关于如何解决此问题的任何想法?

4

1 回答 1

1
MPtr foo = boost::const_pointer_cast<Thingy>(moo);
于 2013-04-23T00:33:56.807 回答