std::DerivedFrom (3) Linux Manual Page
std::DerivedFrom – std::DerivedFrom
Synopsis
Defined in header<concepts>
template <class Derived, class Base>
concept DerivedFrom = (since C++ 20)
std::is_base_of_v<Base, Derived> &&
std::is_convertible_v<const volatile Derived *, const volatile Base *>;
The concept DerivedFrom<Derived, Base> is satisfied if and only if Base is a class type that is either Derived or a public and unambiguous base of Derived, ignoring cv-qualifiers.
Note that this behaviour is different to std::is_base_of when Base is a private or protected base of Derived.
See also
is_base_of checks if a type is derived from the other type
(C++11)
is_convertible
is_nothrow_convertible checks if a type can be converted to the other type
(C++11)
(C++20)
