Is it valid C++ to implement a template class's methods differently for different types without using specialization syntax?
<p>I'm code reviewing a colleagues code and found this:</p>

<p>Header file:</p>

<pre><code>template&lt;class T&gt;
class MyClass
{
  void Execute();
}
</code></pre>

<p>Cpp file:</p>

<pre><code>void MyClass&lt;int&gt;::Execute()
{
  // something
}

void MyClass&lt;string&gt;::Execute()
{
  // something else
}
</code></pre>

<p>The code is specializing the function, but without using template specialization syntax. I guess it's working ok, but is it valid?</p>
