st conversion is necessary for the compiler to call a constructor
      form with the exact pointer type used in <code class="computeroutput"><span class="identifier">switcher</span></code>'s
      constructor. (If C++11's <code class="computeroutput"><span class="keyword">nullptr</span></code>
      is used, it still needs a conversion if multiple pointer types can be accepted
      in a constructor call but <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><spa