Namespaces
Variants

std::meta::reflection_range

Из ru.cppreference.net
< cpp | meta
 
 
 
Библиотека отражения
Запросы доступности членов
Идентификация области видимости
Запросы членов отражения
Отражение аннотаций
Извлечение значения
Подстановка отражения
Отражение результата выражения
Генерация определения класса

Основные категории типов
Составные категории типов
Свойства типов ➜
Отношения типов
 
Типы и запросы отражения
Запросы отражения
Запросы макета отражения
Свойства типов
Запросы свойств типов
 
Определено в заголовке <meta>
template< class T >
concept reflection_range =
    ranges::input_range<T> &&
    std::same_as<ranges::range_value_t<T>, std::meta::info> &&
    std::same_as<std::remove_cvref_t<ranges::range_reference_t<T>>, std::meta::info>;
(начиная с C++26)

Концепция reflection_range определяет требования к типу, который представляет последовательность значений отражения и может быть передан функциям отражения.

Пример

#include <meta>
#include <span>
#include <vector>

static_assert(std::meta::reflection_range<std::vector<std::meta::info>>);
static_assert(std::meta::reflection_range<std::span<const std::meta::info>>);
static_assert(std::meta::reflection_range<std::initializer_list<std::meta::info>>);

int main() {}