title: error: template parameter redeclared here as 'false'. some template magic
body: <p>I try to implement kinda smart Pair class in metaprogramming technique on c++. I want my class can contain different types and constants. Like in code below:</p>
  
  <pre><code>template &lt;typename F, typename S&gt;
  struct Pair {
      typedef F first;
      typedef S second;
  };
  
  template &lt;typename F, bool Cond&gt;
  struct Pair {
      typedef F first;
      static const bool second = Cond;
  };
  </code></pre>
  
  <p>But this code leads to compilation error on gcc 4.8.1 </p>
  
  <pre><code>error: template parameter ‘class S’
  template &lt;typename F, typename S&gt;
                        ^
  error: redeclared here as ‘bool Cond’
  </code></pre>
  
  <p>Is there some way to overload a structure by const template parameter?</p>