string constructor taking two char* into another std::string works in c++14 but not c++17 : <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>
