tatic_cast</code>
      can be used for efficiently downcasting pointers to polymorphic objects, but
      provides no error detection for the case where the pointer being cast actually
      points to the wrong derived class. The <code class="computeroutput">polymorphic_downcast</code> template
      retains the efficiency of <code class="computeroutput">static_cast</code> for non-debug compilations,
      but for debug compilations adds safety via an <code class="computeroutput">assert()</code> that a
   