Namespaces
Variants

std::meta::bases_of

cppreference.net에서 온
< cpp | meta
 
 
 
리플렉션 라이브러리
 
리플렉션 타입 및 질의
리플렉션 질의
리플렉션 레이아웃 질의
타입 속성
타입 속성 질의
 
헤더 <meta>
consteval std::vector<std::meta::info>
    bases_of( std::meta::info type, std::meta::access_context ctx );
(C++26 이후)에 정의됨

std::vector를 반환합니다. 이 벡터는 기반 지정자(base specifier)에 해당하는 리플렉션을 포함하며, type이(가) 나타내는 클래스의 접근 컨텍스트 ctx에 의해 필터링됩니다.

C이(가) std::meta::dealias(type)이(가) 나타내는 클래스 타입이라고 하자. 결과의 각 리플렉션 값 b은 직접 기본 클래스 관계를 나타내며, 이는 C과 C의 기본 클래스 중 하나 사이의 관계입니다. 접근성은 std::meta::is_accessible(b, ctx)에 의해 결정되는 것처럼 판단됩니다. 리플렉션 값은 해당 기본 클래스가 C의 정의에 나타나는 순서로 나타납니다.

직접 기본 클래스 관계는 일반적으로 순서쌍 (D, B)으로 표현됩니다. 여기서:

  • D는 파생 클래스입니다.
  • B는 D의 정의에서 기본 지정자에 의해 명명된 직접 기본 클래스입니다.

함수 std::meta::parent_of와 std::meta::type_of는 각각 관계의 파생 클래스와 기본 클래스를 반환합니다.

매개변수

type - 완전한 클래스 타입 또는 그 타입 별칭을 나타내는 리플렉션 값
ctx - 접근 컨텍스트

반환값

직접 기본 클래스 관계를 나타내는 리플렉션 값의 std::vector.

예외

std::meta::exception을 던집니다. 단, std::meta::dealias(type)이(가) 평가 컨텍스트의 어떤 시점에서 완전한 클래스 타입을 나타내지 않는 경우에 한합니다.

참고

type이(가) 공용체(union) 타입을 나타내는 경우 결과는 빈 벡터입니다.

예제

같이 보기

(C++26)
리플렉션이 직접 기본 클래스 관계
를 나타내는지 확인합니다(함수)