std::meta::bases_of
cppreference.net에서 온
| 헤더 <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) |
리플렉션이 직접 기본 클래스 관계 를 나타내는지 확인합니다(함수) |