Namensräume
Varianten
Aktionen

std::experimental::ranges::DerivedFrom

Von cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
 
 
Konzeptbibliothek
Kernsprachen-Konzepte
DerivedFrom
                              
Objektkonzepte
                              
                              
Vergleichskonzepte
Aufrufbare Konzepte
                                        
                              
URNG-Konzept
 
Definiert in Header <experimental/ranges/concepts>
template< class T, class U >

concept bool DerivedFrom =
    std::is_base_of<U, T>::value &&

    std::is_convertible<std::remove_cv_t<T>*, std::remove_cv_t<U>*>::value;
(Ranges TS)

Das Konzept DerivedFrom<T, U> ist genau dann erfüllt, wenn U ein Klassentyp ist, der entweder T oder eine öffentliche und eindeutige Basisklasse von T ist.

Trotz der Verwendung von std::is_base_of und std::is_convertible in seiner Beschreibung oben, ist DerivedFrom nicht verpflichtet, diese in seiner Implementierung zu verwenden. Daher muss kein Unterordnungsverhältnis zwischen DerivedFrom<T, U> und std::is_base_of<U,T>::value oder std::is_convertible<std::remove_cv_t<T>*, std::remove_cv_t<U>*>::value bestehen.

[bearbeiten] Siehe auch

prüft, ob ein Typ eine Basisklasse des anderen Typs ist
(Klassenvorlage) [bearbeiten]
prüft, ob ein Typ in den anderen Typ konvertierbar ist
(Klassenvorlage) [bearbeiten]