Namespaces
Variants

std::experimental::ranges:: DerivedFrom

From cppreference.net
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)

概念 DerivedFrom < T, U > は、 U T と同一のクラス型であるか、または T の公開かつ曖昧性のない基底クラスである場合にのみ満たされます。

上記の説明で std::is_base_of std::is_convertible が使用されているにもかかわらず、 DerivedFrom はその実装でこれらを使用する必要はありません。したがって、 DerivedFrom < T, U > std:: is_base_of < U,T > :: value または std:: is_convertible < std:: remove_cv_t < T > * , std:: remove_cv_t < U > * < > :: value の間に包含関係が存在する必要はありません。

関連項目

(C++11)
型が他の型の基底型かどうかをチェックする
(クラステンプレート)
型が他の型に変換可能かどうかをチェックする
(クラステンプレート)