title: How do I pass a template as a template parameter to a template?
body: <p>I'm trying to write something like:</p>
  
  <pre><code>          // I don't know how this particular syntax should look...
  template&lt;typename template&lt;typename Ty&gt; FunctorT&gt;
  Something MergeSomething(const Something&amp; lhs, const Something&amp; rhs)
  {
      Something result(lhs);
      if (lhs.IsUnsigned() &amp;&amp; rhs.IsUnsigned())
      {
          result.SetUnsigned(FunctorT&lt;unsigned __int64&gt;()(lhs.UnsignedValue(), rhs.UnsignedValue()));
      }
      else
      {
          result.SetSigned(FunctorT&lt;__int64&gt;()(lhs.SignedValue(), rhs.SignedValue()));
      }
      return result;
  }
  </code></pre>
  
  <p>which would be used like:</p>
  
  <pre><code>Something a, b;
  Something c = MergeSomething&lt;std::plus&gt;(a, b);
  </code></pre>
  
  <p>How do I do that?</p>