title: How can i use generic in an implicit operator?
body: <p>I have a c++ class that is very simple:</p>
  
  <pre><code>struct Pt_t
  {
      T x, y;
      template &lt;class T2&gt; operator Pt_t&lt;T2&gt;() { Pt_t&lt;T2&gt; pt = {x, y}; return pt; }
  };
  </code></pre>
  
  <p>That allows me to create a pt that has T as any type I want. I can also do <code>Pt_t&lt;s8&gt; = Pt_t&lt;u64&gt;;</code> without a problem. How do I do the same in C#? I tried the below and got an error:</p>
  
  <pre><code>    class Pt&lt;T&gt;
      {
          public T x, y;
          //between operator and &lt;T2&gt;, error CS1031: Type expected
          public static implicit operator&lt;T2&gt; Pt&lt;T&gt;(Pt&lt;T2&gt; v) {
              Pt&lt;T&gt; r = new Pt&lt;T&gt;();
              r.x = v.x;
              r.y = v.y;
              return r; 
          }
      }
  </code></pre>