title: Metaprogramming with std::is_same
body: <p>Is it possible to do something like the following that compiles without template specialization?</p>
  
  <pre><code>template &lt;class T&gt; 
  class A {
  public:
    #if std::is_same&lt;T,int&gt;
    void has_int() {}
    #elif std::is_same&lt;T,char&gt;
    void has_char() {}
    #endif
  };
  A&lt;int&gt; a; a.has_int();
  A&lt;char&gt; b; b.has_char();
  </code></pre>