이 맞습니까? 그것은 제 컴파일러로 컴파일되지만 AIX와는 다르다고 들었습니다.C++ const- 캐스트 참조
내 코드를 AIX 플랫폼에서 컴파일하려면 어떻게해야합니까? (Ctrl-C Ctrl-V로 비 const 버전을 다시 구현하십시오).
이 맞습니까? 그것은 제 컴파일러로 컴파일되지만 AIX와는 다르다고 들었습니다.C++ const- 캐스트 참조
내 코드를 AIX 플랫폼에서 컴파일하려면 어떻게해야합니까? (Ctrl-C Ctrl-V로 비 const 버전을 다시 구현하십시오).
const_cast
은 변수의 const-ness를 제거하는 데 사용됩니다. 즉, const A& a
인 경우 A& b = const_cast<A&>(a)
을 작성할 수 있습니다. 이제 b
을 수정하거나 비 const 메소드를 호출 할 수 있습니다.
이 경우 iterator
의 const_iterator
을 구성하고 const_cast
을 사용하지 않아도 항상 가능합니다. 이 두 가지 유형이 있으며 const_iterator
이 생성 될 수 있음을 염두에 두십시오. iterator
C++ const-ness는이 경우별로 할 일이 없습니다.
iterator
및 const_iterator
은 (일반적으로) 다른 유형이므로 참조를 전송할 수 없습니다. 당신은 const가 아닌 버전이 필요하지 않습니다
ConstIterator citer = iter;
return funct(citer);
: 그것은 단지 명시 적 변환을 수 있기 때문에 좀 더 안전하게,
을하거나 수 있도록하지만,
iterator
는const_iterator
로 변환합니다. 컴파일러는 const 객체가 아닌 const가 아닌 객체에 대해서도 const 버전을 호출합니다. AIX에서 컴파일러에 대해 알지 못한다. 그러나 문제가 있음을 보여주는 코드가 없다면 실제로 진단 할 수 없다. –