Namespaces
Variants

std::meta::is_complete_type

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

Основные категории типов
Составные категории типов
Свойства типов ➜
Отношения типов
 
Типы отражения и запросы
Запросы отражения
Запросы размещения отражения
Свойства типов
Запросы свойств типов
 
Определено в заголовке <meta>
consteval bool is_complete_type( std::meta::info r );
(начиная с C++26)

Определяет, представляет ли отражение r полный тип.

Формально возвращает true, если std::meta::is_type(r) является true и в контексте вычислений существует точка, из которой тип, представленный std::meta::dealias(r), не является неполным типом. В противном случае возвращает false.

Параметры

r - отражение для проверки

Возвращаемое значение

true, если r представляет полный тип, false в противном случае

Примечания

Тип перечисления является полным, если известен его базовый тип. Чтобы проверить, полностью ли определён список его перечислителей, см. std::meta::is_enumerable_type.

enum E : int;
static_assert(std::meta::is_complete_type(^^E));
static_assert(!std::meta::is_enumerable_type(^^E));

enum E : int { e };
static_assert(std::meta::is_enumerable_type(^^E));

Пример

#include <meta>

struct A;    // incomplete type
struct B {}; // complete type

static_assert(std::meta::is_complete_type(^^A) == false);
static_assert(std::meta::is_complete_type(^^B) == true);

template <typename>
struct C; // incomplete class template

template <>
struct C<int> {}; // complete explicit template specialization

template <>
struct C<long>; // incomplete explicit template specialization

static_assert(std::meta::is_complete_type(^^C<long>) == false);
static_assert(std::meta::is_complete_type(^^C<char>) == false);
static_assert(std::meta::is_complete_type(^^C<int>) == true);

int main() {}

Смотри также

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