[concept.derived]

# 18 Concepts library [[concepts]](./#concepts)

## 18.4 Language-related concepts [[concepts.lang]](concepts.lang#concept.derived)

### 18.4.3 Concept derived_from [concept.derived]

[ð](#concept:derived_from)

`template<class Derived, class Base>
  concept [derived_from](#concept:derived_from "18.4.3 Concept derived_­from [concept.derived]") =
    is_base_of_v<Base, Derived> &&
    is_convertible_v<const volatile Derived*, const volatile Base*>;
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/concepts.tex#L326)

[*Note [1](#note-1)*:

[derived_from](#concept:derived_from "18.4.3 Concept derived_­from [concept.derived]")<Derived, Base> is satisfied if and only ifDerived is publicly and unambiguously derived from Base, orDerived and Base are the same class type ignoring cv-qualifiers[.](#1.sentence-1)

â *end note*]
