std::meta::is_virtual
De fr.cppreference.net
| 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
Exécuter ce code
#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(C++26) |
vérifie si la réflexion représente une fonction membre qui en remplace une autre (fonction) |
(C++26) |
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) |
(C++11) |
vérifie si un type est un type de classe polymorphe (modèle de classe) |