Namespaces
Variants

std::meta::is_virtual

De es.cppreference.net
< cpp | meta
 
 
 
Biblioteca de reflexión
 
Tipos y consultas de reflexión
Consultas de reflexión
Consultas de diseño de reflexión
Propiedades de tipo
Consultas de propiedades de tipo
 
Definido en el encabezado <meta>
consteval bool is_virtual( std::meta::info r );
(desde C++26)

Devuelve true si r representa una función miembro virtual o una relación de clase base directa (B, D) para la cual B es una clase base virtual de D. De lo contrario, devuelve false.

Parámetros

r - un valor de reflexión

Valor de retorno

true si r representa una función miembro virtual o una relación de clase base directa entre la clase base virtual B y la clase derivada D; de lo contrario, false.

Ejemplo

#include <meta>

struct Base
{
    virtual void f();
};

struct Derived : public virtual Base
{
    void f(); // overrides Base::f
    void g(); // non-virtual
};

static_assert(std::meta::is_virtual(^^Base::f));
static_assert(std::meta::is_virtual(^^Derived::f));
static_assert(!std::meta::is_virtual(^^Derived::g));

constexpr auto ctx = std::meta::access_context::current();
constexpr std::meta::info base = std::meta::bases_of(^^Derived, ctx)[0];
static_assert(std::meta::is_virtual(base));

int main() {}

Véase también

Plantilla:cpp/meta/dsc is polymorphic type
comprueba si la reflexión representa una función miembro que sobrescribe otra función miembro
(función)
comprueba si la reflexión representa una función
(función)
(C++26)
comprueba si la reflexión representa una relación de clase base directa
(función)
comprueba si un tipo es un tipo de clase polimórfica
(plantilla de clase)