">polymorphic_cast</code> template
      performs a <code class="computeroutput">dynamic_cast</code> on a pointer, and throws an exception
      if the <code class="computeroutput">dynamic_cast</code> returns 0.
    </p>
<p>
      For crosscasts, or when the success of a cast can only be known at runtime,
      or when efficiency is not important, <code class="computeroutput">polymorphic_cast</code> is preferred.
    </p>
<p>
      The C++ built-in <code class="computeroutput">dynamic_cast</code> must be us