std::meta::is_scalar_type
Определён в заголовочном файле <meta> | ||
|---|---|---|
consteval bool is_scalar_type( std::meta::info r ); | (начиная с C++26) |
Возвращает true, если r представляет скалярный тип. В противном случае возвращает false.
Параметры
| r | - | значение отражения |
Возвращаемое значение
true, если r представляет скалярный тип; в противном случае false.
Исключения
Выбрасывает std::meta::exception, если r не представляет тип или псевдоним типа.
Пример
#include <cstddef>
#include <meta>
enum E {};
struct S
{
int mem{};
int foo();
};
using mem_obj_ptr_t = int S::*;
using mem_fun_ptr_t = int (S::*)();
static_assert
(""
and is_scalar_type(^^E)
and ! is_scalar_type(^^S)
and is_scalar_type(^^int)
and ! is_scalar_type(^^int&)
and is_scalar_type(^^int*)
and ! is_scalar_type(^^void)
and is_scalar_type(^^void*)
and is_scalar_type(^^float)
and ! is_scalar_type(^^float&)
and is_scalar_type(^^float*)
and ! is_scalar_type(^^float[42])
and is_scalar_type(add_cv(^^int))
and is_scalar_type(^^mem_obj_ptr_t)
and is_scalar_type(^^mem_fun_ptr_t)
and is_scalar_type(^^std::nullptr_t)
and is_scalar_type(^^decltype(^^::))
and is_scalar_type(^^std::meta::info)
);
int main() {}
См. также
|
(C++26) | проверяет, представляет ли отражение арифметический тип (функция) |
|
(C++26) | проверяет, является ли отражаемый тип перечислимым типом (функция) |
|
(C++26) | проверяет, является ли отражаемый тип типом-указателем (функция) |
|
(C++26) | проверяет, представляет ли отражение тип-указатель на член (функция) |
|
(C++26) | проверяет, является ли отражаемый тип std::nullptr_t (функция) |
|
(C++26) | проверяет, является ли отражаемый тип std::meta::info (функция) |
|
(C++26) | проверяет, является ли отражаемый тип объектным типом (функция) |
|
(C++11) | проверяет, является ли тип скалярным (шаблон класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/meta/is_scalar_type