런타임시 C++ 클래스 인스턴스의 식별자를 프로그래밍 방식으로 검색하려고합니다. 나는 C++이 리플렉션을 아직 지원하지 않는다는 것을 알고 있지만 거기에 대안 솔루션이 있습니까? "my_obj"을 인쇄해야이 프로그램을 실행"this"포인터를 사용하여 객체 이름을 얻을 수 있습니까?
class Foo {
Foo() {
auto name = reflect::getIdentifierName(this);
std::cout << name << std::endl;
}
};
void main() {
Foo my_obj;
}
: 예를 들어 다음 예제를 제공. 이 기본 리플렉션 기능을 구현하는 데 사용할 수있는 유틸리티 라이브러리를 찾고 있습니다.
libclang이 이러한 정보를 추출하는 데 사용될 수 있는지 궁금해합니다. 그렇다면이 경우 정보를 추출하는 데 reflection 함수를 빌드하는 방법에 대한 힌트가 필요합니다.
이는 개체의 식별자입니다. 이름을 생성자에 문자열로 지정하고 저장하고 getter에서 반환하는 것을 고려 했습니까? – Yunnosch
개체에 이름이 없으며 변수가 있습니다. 일반적으로 객체와 변수 사이에는 1 : 1 관계가 없습니다. –
프로그래밍 방식으로 클래스 개체 인스턴스의 이름 (클래스 이름 아님)을 검색하는 데 도움이되는 도구를 찾고 있습니다. 예를 들어 모든 파서 도구. –