title: string constructor taking two char* into another std::string works in c++14 but not c++17
body: <p>The following program attempts to construct a second string using the first string and a pointer into the middle of the first string:</p>
  
  <pre><code>#include &lt;string&gt;
  
  int main() {
    std::string src = "hello world";
    const char* end = &amp;src[5];
    std::string dest(src.data(), end);
  }
  </code></pre>
  
  <p>In C++14 and earlier this works. But <a href="https://wandbox.org/permlink/fQIbQ2PdJ55AUk5F" rel="noreferrer">in C++17 the call fails</a>:</p>
  
  <pre><code>error: no matching function for call to ‘std::__cxx11::basic_string&lt;char&gt;::basic_string(char*, const char*&amp;)’
     std::string dest(src.data(), end);
  [... full output omitted ...]
  </code></pre>
  
  <p>What changed to make this fail?</p>