Namespaces
Variants

std::meta::is_const

From cppreference.com
< cpp | meta
 
 
 
Reflection library
 
Reflection types and queries
Type properties
Type property queries
 
Defined in header <meta>
consteval bool is_const( std::meta::info r );
(since C++26)

Let T be std::meta::type_of(r) if has-type(r) is true. Otherwise, let T be std::meta::dealias(r).

Returns: true if T represents a const (or const volatile) type, or a const-qualified function type. Otherwise, false.

Parameters

r - a reflection value

Return value

true if T represents a const type, or a const-qualified function type. Otherwise, false.

Example

#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() {}

See also

(C++11)
checks if a type is const-qualified
(class template) [edit]
(C++26)(C++26)(C++26)
adds const and/or volatile specifiers to reflected type
(function) [edit]
removes const and/or volatile specifiers from reflected type
(function) [edit]
(C++11)(C++11)(C++11)
adds const and/or volatile specifiers to the given type
(class template) [edit]
removes const and/or volatile specifiers from the given type
(class template) [edit]
(C++17)
obtains a reference to const to its argument
(function template) [edit]
converts a view into a constant_range
(class template) (range adaptor object)[edit]