title: Trouble understanding C++14 Relaxed constexpr restrictions
body: <p>I've came across new C++14 signature for <code>std::max</code> function:</p>
  
  <pre><code>template&lt; class T &gt; 
  const T&amp; max( const T&amp; a, const T&amp; b ); // (C++11)
  
  template&lt; class T &gt; 
  constexpr const T&amp; max( const T&amp; a, const T&amp; b );// (C++14)
  </code></pre>
  
  <p>I've read about <em>Relaxed constexpr restrictions</em> proposal for C++14 but I'm still don't understand why this function return value can be <code>constexpr</code></p>
  
  <p>Example:</p>
  
  <pre><code>std::vector&lt;int&gt; a, b;
  //This does not compile but as my understadnding of `constexpr` this should
  int array[std::max(a.size(), b.size()]; (1)
  //This is trivial use that does compile
  int array[std::max(1,2)]; (2)
  </code></pre>
  
  <p>When calling <code>std::max</code> in (1) <code>constexpr</code> is ignored ?</p>