std::meta::bases_of
| Определено в заголовке <meta>
|
||
consteval std::vector<std::meta::info>
bases_of( std::meta::info type, std::meta::access_context ctx );
|
(начиная с C++26) | |
Возвращает std::vector, который содержит отражения, соответствующие спецификаторам базовых классов класса, представленного 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 представляет тип объединения, результатом является пустой вектор.
Пример
| Этот раздел неполон Причина: нет примера |
Смотрите также
(C++26) |
проверяет, представляет ли отражение отношение прямой базовый класс (функция) |