title: static constexpr member function in templated using expression not found
body: <p>For the following code</p>
  
  <pre><code>#include &lt;array&gt;
  
  template&lt;unsigned MaxP, typename type&gt;
  struct kernel
  {
    static constexpr unsigned max_pole(unsigned P)
    { return P&gt;MaxP? MaxP:P; }
  
    template&lt;unsigned P&gt;
    using array = std::array&lt;type,max_pole(P)&gt;;          // wrong?
  
    template&lt;unsigned P&gt;
    static void do_something(array&lt;P&gt; const&amp;, array&lt;P&gt;&amp;);
  };
  </code></pre>
  
  <p>gcc 4.7.0 (g++ -c -std=c++11) gives</p>
  
  <pre><code>error: ‘max_pole’ was not declared in this scope
  </code></pre>
  
  <p>Is this correct (behaviour of the compiler)? Note that if I resolve <code>max_pole</code> by replacing it with <code>kernel::max_pole</code> on the line indicated, it compiles fine.</p>
  
  <p><strong>EDIT</strong> Reported to bugzilla, accepted as bug c++/55992, see <a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55992" rel="nofollow">http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55992</a>. Also occurs with gcc 4.7.x and 4.8.0.</p>