C++ template and ODR Rule
<p>Why does following works in <code>C++</code>, I thought <code>ODR</code> rule will come into picture for following code</p>

<pre><code>typedef char      int8; 
class Sample {
public:
  template &lt;typename T&gt;
  void test( T param){
  }
};

int main() {
  Sample s;
  s.test&lt;char&gt;('a');
  s.test&lt;int8&gt;((int8)'b');
  return 0;
}
</code></pre>
