10'000'000 번 루프로 다운캐스팅 실시. dynamic_cast 와 dy_cast (내가 실장한거) 는 에러 케이스까지 처리하면서 (nullptr 을 내뱉는 경우) 수행하게 했는데 한 2~3배 정도 느릴 줄 알았는데 생각외로 빠름.
그럼 왜 UE4 는 자기 나름대로 Cast 을 다시 만든거지 ㅅㅂ
10'000'000 번 루프로 다운캐스팅 실시. dynamic_cast 와 dy_cast (내가 실장한거) 는 에러 케이스까지 처리하면서 (nullptr 을 내뱉는 경우) 수행하게 했는데 한 2~3배 정도 느릴 줄 알았는데 생각외로 빠름.
그럼 왜 UE4 는 자기 나름대로 Cast 을 다시 만든거지 ㅅㅂ
RTTI나 exception, virtual call, std::function같은거 생각보다 그렇게까지 오버헤드 안먹는데 그것조차 경기를 일으키는 사람들 때문에 템플릿이 나왔지
스택오버플로우나 Effective 시리즈에서는 되도록이면 static_cast 쓰세영 하길래 그런갑다만 하고 있었는데 이번에 직접 돌려보니까 헐 생각밖에 안나네요
static_cast랑 dynamic_cast는 용도가 아예 다른데; dynamic_cast는 클래스 상속시에만 쓰는 캐스팅이고 static_cast는 C 스타일 묵시적 캐스팅에 대한 대안임
ㅇㅇ 글킨한데 dynamic_cast 써도 될까요? 하는 글에 왜 dynamic_cast 씀? static_cast 쓰셈 빼애액 하길래 그러는거
언리얼은 리플렉션이나 그런걸 필요해서 구현해 놨을껄 그럼 표준 rtti를 사용 안하고 구현한 타입정보를 사용하겠지 그러니까 결과적으로 rtti가 필요한 dynamic_cast는 못쓰게 되는거겠지
RTTI 자체를 끄는건가.. 그럼 뭐 이해는 감