2
this question을 읽은 후에 dynamic_cast<void*>
이 개체 포인터의 실제 ID를 확인하고 모든 기본 포인터가 가장 파생 된 (캐스팅 이후) 것과 똑같이 비교할 수있는 가장 좋은 방법이라는 것을 알고 있습니다.비 다형성 유형의 경우 dynamic_cast <void*>이 작동하도록 보장됩니까? (static_cast <void*>과 같음)?
확실하지 않은 점은이 캐스트가 비 다형성 케이스에서 정의되고 유용한 결과를 제공한다는 것입니다. 그렇지 않다면이 문제를 해결하거나 희망없는 상황입니까? 값, 잘 정의 또는 기타를 생성하지 않습니다 때문에
class A {};
class B : public A {};
int main()
{
A a;
B b;
A* base_ptr = &b;
void* pointer = dynamic_cast<void*>(&a); // is this value well-defined?
if(dynamic_cast<void*>(&b) == dynamic_cast<void*>(base_ptr))
std::cout << "Is this undefined or not?";
}