title: Why would I use dynamic_cast to cast TO a void *?
body: <p>So I was reading the answers to <a href="https://stackoverflow.com/questions/4131091/dynamic-cast-from-void">dynamic_cast from &quot;void *&quot;</a> and although you can't cast from a <code>void *</code> to a <code>T *</code> several of the responses point out that it is possible to cast a <code>T *</code> to a <code>void *</code>, but don't give any indication <em>why</em> you'd want to do that.</p>
  
  <p>Is this just a bit of trivia that it's possible, or is there a case where it would make sense? I thought about maybe for readability or to make it clear that we're converting to a <code>void *</code>, but given the purpose of <code>dynamic_cast</code>, it doesn't fit very well to me.</p>
  
  <p>For that matter, is there any reason to do anything other than let <code>T *</code> become <code>void *</code> implicitly? I've seen C-style casts to <code>void *</code> used from time to time for this purpose, I presume just to be explicit (assuming we're not doing something unusual like casting <code>int</code> to a pointer or something).</p>