#include <stlsoft/util/constraints.hpp>
D | The derived type | |
B | The base type |
class Parent {}; class Child : public Parent {}; class Orphan {}; stlsoft::must_be_derived<Parent, Parent>(); // Compile error! stlsoft::must_be_derived<Child, Parent>(); // Ok stlsoft::must_be_derived<Child, Child>(); // Compile error! stlsoft::must_have_base<Child, Parent>(); // Compile error! stlsoft::must_be_derived<Orphan, Parent>(); // Compile error! stlsoft::must_be_derived<Orphan, Child>(); // Compile error! stlsoft::must_be_derived<Parent, Orphan>(); // Compile error! stlsoft::must_be_derived<Child, Orphan>(); // Compile error!