ORIGINAL
Loading...
Searching...
No Matches
original::ExtendsOf Concept Reference

Checks derivation or type identity. More...

#include <types.h>

Concept definition

template<typename Base, typename Derive>
concept original::ExtendsOf = std::derived_from<Derive, Base> || std::is_same_v<Base, Derive>
Checks derivation or type identity.
Definition types.h:157

Detailed Description

Checks derivation or type identity.

Template Parameters
BaseBase class or same type
DeriveDerived class or same type

Uses std::derived_from for explicit inheritance checking, allowing for clearer intent than SuperOf in some contexts.

struct Animal {};
struct Cat : Animal {};
static_assert(ExtendsOf<Animal, Cat>); // Passes: valid inheritance
static_assert(ExtendsOf<int, int>); // Passes: same type
static_assert(ExtendsOf<Cat, int>); // Fails: invalid inheritance