title: Is there any way to enforce in C++ (at compile-time) that a derived class defines a nested type?
body: <p>For example, I have a base class <code>Event</code> and I want to ensure that every class derived from <code>Event</code> has defined an <code>enum class Type</code> member, so that <code>T::Type</code> is a valid type for any class <code>T</code> derived from <code>Event</code>.</p>