2014-06-20 2 views
0

, 클래스 또는 클래스의 객체가 비어 있거나없는 경우 개체가 비어 있는지 확인하는 방법? 예를 들어

class A {};  // This is blank 
class B {int i}; // This is not. 

어떻게 알고?

+1

빈의 당신의 정의는 무엇입니까? 내부 클래스, typedef, 친구 선언은 어떨까요? – Jarod42

+0

정수가 공백인지 어떻게 알 수 있습니까? 0 값이 유효 할 수 있습니까? –

답변

1

"반사"가 필요합니다. 리플렉션은 메서드, 멤버 등의 형식을 검사하는 기능입니다. C++에서는 "일반적인"종류의 리플렉션을 사용할 수 없지만이를 수행 할 수있는 방법이 있습니다.

나는 당신이 여기이 대답을 읽으십시오 :

How can I add reflection to a C++ application?

또는이 하나

Is there an easy way to tell if a class/struct has no data members?

+0

나는 반사가 올바른 단어라고 생각하지 않는다. 이것을 메타 프로그래밍이라고합니다. 리플렉션은 런타임에 쿼리 유형 정보에 관한 것입니다. –

+0

@BryanChen http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3814.html - 컴파일 타임에 C++ 유형의 내용을 검사 할 수있는 기능이 호출되었습니다. "컴파일 시간 반영". 이 기능을 사용하면 런타임 리플렉션을 구현할 수 있으므로 (컴파일 타임 리플렉션을 사용하고 런타임 리플렉션 시스템을 메타 프로그램화할 수 있기 때문에) 적절합니다. – Yakk

관련 문제