title: Is it possible to auto cast (long *) to (int *)
body: <p>I'm working on an existing code base, so the answer &quot;do it right, just use one type&quot; doesn't work because they already didn't do it right, I just have to live with it.</p>
  <p>I know that coercion works so that this works:</p>
  <pre><code>int a = 1;
  long b = a;
  </code></pre>
  <p>even though int and long are different base types.  However, this doesn't work:</p>
  <pre><code>int a;
  long *b = &amp;a;
  </code></pre>
  <p>because there's no auto conversion between &quot;pointer to int&quot; and &quot;pointer to long&quot;.</p>
  <p>If, rather than base types, I was working with classes, I could get it to work by providing a conversion.  My question is this.  Is there a way to provide conversions for base types (or rather pointers to base types) so I could start the process of converting my code to use a single 32-bit integral type?  As it stands, I either need to do an &quot;all or nothing&quot; edit OR provide a boatload of explicit casts.</p>