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

Checks derivation or type identity using std::derived_from. 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 using std::derived_from.
Definition types.h:472

Detailed Description

Checks derivation or type identity using std::derived_from.

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

Uses std::derived_from for explicit inheritance checking, which is stricter than is_base_of_v in some cases.

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, Animal>); // Fails: invalid inheritance
Unique ownership smart pointer with move semantics.
Definition ownerPtr.h:37