Namespaces
Variants

std::meta::is_virtual

De fr.cppreference.net
< cpp | meta
 
 
 
Bibliothèque de réflexion
 
Types et requêtes de réflexion
Requêtes de réflexion
Requêtes de disposition de réflexion
Propriétés de type
Requêtes de propriétés de type
 
Défini dans l'en-tête <meta>
consteval bool is_virtual( std::meta::info r );
(depuis C++26)

Renvoie true si r représente un(e) fonction membre virtuelle ou une relation de classe de base directe (B, D) pour laquelle B est une classe de base virtuelle de D. Sinon, renvoie false.

Paramètres

r - une valeur de réflexion

Valeur de retour

true si r représente une fonction membre virtuelle ou une relation de classe de base directe entre la classe de base virtuelle B et la classe dérivée D ; sinon false.

Exemple

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

Voir aussi

Template:cpp/meta/dsc is polymorphic type
vérifie si la réflexion représente une fonction membre qui en remplace une autre
(fonction)
vérifie si la réflexion représente une fonction
(fonction)
(C++26)
vérifie si la réflexion représente une relation de classe de base directe
(fonction)
vérifie si un type est un type de classe polymorphe
(modèle de classe)