Spec-Zone.ru › C++

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 представляет тип объединения, результатом является пустой вектор.

Пример

См. также

is_base
(C++26)
проверяет, представляет ли отражение отношение прямого базового класса
(функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/meta/bases_of

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API