std::meta::is_const
Определено в заголовочном файле <meta> | ||
|---|---|---|
consteval bool is_const( std::meta::info r ); | (начиная с C++26) |
Пусть T будет std::meta::type_of(r), если has-type(r) истинно. В противном случае пусть T будет std::meta::dealias(r).
Возвращает: true, если T представляет тип const (или const volatile) либо тип функции с квалификатором const. В противном случае — false.
Параметры
| r | - | значение отражения |
Возвращаемое значение
true, если T представляет тип const либо тип функции с квалификатором const. В противном случае — false.
Пример
#include <meta>
void foo();
struct S
{
void bar() const;
void pub();
};
const int a{42};
int b{};
static_assert(!is_const(^^foo));
static_assert( is_const(^^S::bar));
static_assert(!is_const(^^S::pub));
static_assert( is_const(^^a));
static_assert(!is_const(^^b));
int main() {}
См. также
|
(C++11) | проверяет, имеет ли тип квалификатор const (шаблон класса) |
|
(C++26)(C++26)(C++26) | добавляет к отражаемому типу квалификаторы const и/или volatile (функция) |
|
(C++26)(C++26)(C++26) | удаляет из отражаемого типа квалификаторы const и/или volatile (функция) |
|
(C++11)(C++11)(C++11) | добавляет к заданному типу квалификаторы const и/или volatile (шаблон класса) |
|
(C++11)(C++11)(C++11) | удаляет из заданного типа квалификаторы const и/или volatile (шаблон класса) |
|
(C++17) | получает ссылку на аргумент с квалификатором const (шаблон функции) |
|
(C++23) | преобразует view в constant_range(шаблон класса) (объект-адаптер диапазона) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/meta/is_const