title: Can non-type template parameters in c++17 be decltype(auto)?
body: <p>I discovered that gcc and clang allow to use <code>decltype(auto)</code> in non-type template parameter type clause. E.g.:</p>
  
  <pre><code>template &lt;decltype(auto)&gt;
  struct X {};
  
  int foo ;
  
  int main() {
      X&lt;(foo)&gt; x;
      static_cast&lt;void&gt;(x);
  }
  </code></pre>
  
  <p><a href="https://wandbox.org/permlink/WjMznykm1OHne1WP" rel="noreferrer">[live demo gcc]</a> <a href="https://wandbox.org/permlink/MTmKJb5JOmsOfeJx" rel="noreferrer">[live demo clang]</a></p>
  
  <p>Is it standard compliant feature or is it some gnu extension?</p>