std::DerivedFrom
| Defined in header <concepts> | ||
|---|---|---|
| template< class Derived, class Base > concept DerivedFrom = std::is_base_of_v<Base, Derived> && std::is_convertible_v<const volatile Derived*, const volatile Base*>; | (since C++20) | 
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
| (C++11) | checks if a type is derived from the other type (class template) | 
| (C++11)(C++20) | checks if a type can be converted to the other type (class template) | 
    © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
    http://en.cppreference.com/w/cpp/concepts/DerivedFrom