title: Condition in class definition
body: <p>I'm trying to do something like:</p>
  
  <pre><code>#pragma once
  #include &lt;memory&gt;
  #include &lt;type_traits&gt;
  #include &lt;vector&gt;
  
  class B{}
  
  template &lt;class T&gt;
  class A
  {
      private:
          std::vector&lt;std::shared_ptr&lt;T&gt;&gt; ptrVector;
      public:
          A&lt;T&gt;();
          void pushBack(std::shared_ptr&lt;T&gt; t);
          if(std::is_same&lt;T, B&gt;::value)
          {
              void doSth();
          }
          ~A&lt;T&gt;(){};
  };
  </code></pre>
  
  <p>is it even possible to do a condition like this, somehow?
  No, I can't inherit from this class, and need doSth() ONLY if <code>A&lt;B&gt;</code>, the doSth() should not exist if <code>A&lt;C&gt;</code>.</p>