title: Is there a Standard Untokenize Templated Type?
body: <p>Is there a standard type to untokenize a type? It'd probably be implemented as so:</p>
  <pre><code>template&lt;class T&gt;
  using untokenize = T;
  </code></pre>
  <p>This way I can perform the following cast using an overloaded operator:</p>
  <pre><code>struct x {
    int y;
    operator int&amp;() {
      return y;
    }
  };
  
  x a;
  // int&amp;(a); // doesn't work
  // (int&amp;)(a); // not the same thing
  untokenize&lt;int&amp;&gt;(a); // works great
  </code></pre>
  <p>Or is there another, more standard way to achieve my goal of avoiding a c-style cast in favor of a function-style cast?</p>