거기에 일부 유형의 현재 위치 : 이제만들기 (consts 및 부스트) 가변 불변의 유형
// Pointer to a mutable thingy
typedef boost::shared_ptr<Thingy> MPtr;
// Pointer to an immutable thingy
typedef boost::shared_ptr<const Thingy> Ptr;
, 나는 Ptr 타입의 객체에 할당 할 필요가있는 MPtr 타입의 객체를 가지고있다.하지만 컴파일러는 변환이 불가능하다는 것을 알 수 없다. 에 const_cast를 사용하거나 도움하지 않는 것 :
MPtr foo = const_cast<MPtr*>(moo);
나는 그것이 기본 유형을 변경할 수 없다는 오류가 발생합니다. 이 문제를 해결할 수있는 방법에 대한 아이디어가 있습니까?
어떻게 해키를 기꺼이 받으시겠습니까? 당신이 음매의 주소를 취한 다음 C 스타일의 캐스트를 사용하고, 당신이 선해야한다고 역설하십시오. MPtr foo = (Mptr) &moo; – RandyGaul
'Thingy'는'typedef' 또는'#define '입니까? 'Thingy'는 두 위치 모두에서 동일한 문자열입니까? 오류 C2440 : – Yakk