The figure 3 shows WTL model. In this figure, the word of
static_cast(this) is the key point. It casts this, which is of
type B1, to either D1 or D2 depending on which specialization
is being invoked. Because template code is generated at
compile-time, this cast is guaranteed to be safe, as long as the
inheritance list is written correctly.