title: Is it possible to exclude template member variables by conditions on template arguments?
body: <p>I am currently writing a class which should specialize depending on a template argument.</p>
  
  <p>I am now wondering whether it is possible to leave out certain member variables for specific specializations to be more exact depending on whether a numeric template argument is larger than X.</p>
  
  <p>So for example:</p>
  
  <pre><code>template&lt;int N&gt;
  class Test
  {
     int a;
     int b;
  }
  
  template&lt;N &gt; X&gt;
  class Test
  {
    int a;
  }
  </code></pre>
  
  <p>I was thinking about the use of std::conditional but that seems to result in at least one type being picked. I could of course the D-Pointer method and std::conditional and put the specialization into different objects that are pointed at but I wondered whether there was a better way.</p>
  
  <p>An alternative I see is to use an abstract base class and have two implementations one for N &lt; X and one for N >= X but I'm not sure that this would be better.</p>