align="top"><p>
        Because <code class="computeroutput">polymorphic_downcast</code> uses <code class="computeroutput">assert()</code>, it
        violates the One Definition Rule (ODR) if NDEBUG is inconsistently defined
        across translation units. See ISO Std 3.2
      </p></td></tr>
</table></div>
<p>
      <a name="polymorphic_cast"></a>The C++ built-in <code class="computeroutput">dynamic_cast</code> can
      be used for downcasts and crosscasts of pointers to polymorphic objects, but
      