title: constexpr function taking const char*
body: <p>Im compiling using MSVC v141 with <code>/std:c++17</code>.</p>
  
  <pre><code>constexpr const char* test(const char* foo) {
      return foo + 1;
  }
  
  constexpr const char* bc = test("abc");
  </code></pre>
  
  <p>compiles just fine, whereas</p>
  
  <pre><code>constexpr const char* test(const char* foo) {
      constexpr auto bar = foo;
      return bar + 1;
  }
  
  constexpr const char* bc = test("abc");
  </code></pre>
  
  <p>Fails with:</p>
  
  <blockquote>
    <p>error C2131: expression did not evaluate to a constant</p>
    
    <p>failure was caused by a read of a variable outside its lifetime</p>
    
    <p>note: see usage of 'foo'</p>
  </blockquote>
  
  <p>Is this correct behaviour or a bug in MSVC?</p>