c++의 reflection

c++의 reflection

2024년 3월 19일

Reflection #

런타임에 클래스의 구조를 확인하고 조작할 수 있는 방법을 의미한다. 자바의 리플렉션으로 원하는 클래스를 문자열만 전달해주면 클래스를 가져올 수 있고, 객체까지 생성할 수 있는것과 동일하다.
다운캐스팅에 사용되는 dynamic_cast는 안전한 타입 체크일 뿐이고, 캐스팅도 리플렉션을 이용하면 성능 향상이 있다.

JNI의 reflection은 Java의 함수를 호출하는 것이고, c++은 기본적으로 리플렉션을 지원하지 않지만, UnrealEngine에서는 UClass를 이용해서 리플렉션을 자체적으로 구현했다.


comments powered by Disqus