<div dir="ltr">It *shouldn't* include <string_view>, that's a given.<div><br></div><div>IIRC, and Marshall would know better, I believe it was untenable to</div><div>maintain a version of <string> that didn't depend on <string_view> after making</div><div>the changes required for C++17.</div><div><br></div><div>However inspecting <string> now it does seem possible that the entanglement</div><div>is avoidable.Though it's also likely I'm just not seeing the whole picture. </div><div><br></div><div>/Eric</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 15, 2017 at 6:42 PM, Duncan P. N. Exon Smith <span dir="ltr"><<a href="mailto:dexonsmith@apple.com" target="_blank">dexonsmith@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On Jul 20, 2016, at 22:31, Marshall Clow via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br>
><br>
> Modified: libcxx/trunk/include/string<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/string?rev=276238&r1=276237&r2=276238&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/libcxx/trunk/include/<wbr>string?rev=276238&r1=276237&<wbr>r2=276238&view=diff</a><br>
> ==============================<wbr>==============================<wbr>==================<br>
><br>
</span><span class="">> @@ -435,6 +461,7 @@ basic_string<char32_t> operator "" s( co<br>
> */<br>
><br>
> #include <__config><br>
> +#include <string_view><br>
<br>
</span>This breaks the following, valid, C++14 code:<br>
<br>
    #include <string><br>
    #include <experimental/string_view><br>
    using namespace std;<br>
    using std::experimental::string_<wbr>view;<br>
    void f() { string_view sv; }<br>
<br>
Should <string> #include <string_view> even when we're not in C++17 mode?  Why?<br>
<div class="HOEnZb"><div class="h5"><br>
> #include <iosfwd><br>
> #include <cstring><br>
> #include <cstdio>  // For EOF.<br>
<br>
</div></div></blockquote></div><br></div>