It *shouldn't* include <string_view>, that's a given. IIRC, and Marshall would know better, I believe it was untenable to maintain a version of <string> that didn't depend on <string_view> after making the changes required for C++17.
However inspecting <string> now it does seem possible that the entanglement is avoidable.Though it's also likely I'm just not seeing the whole picture. /Eric On Thu, Jun 15, 2017 at 6:42 PM, Duncan P. N. Exon Smith < dexonsm...@apple.com> wrote: > > > On Jul 20, 2016, at 22:31, Marshall Clow via cfe-commits < > cfe-commits@lists.llvm.org> wrote: > > > > Modified: libcxx/trunk/include/string > > URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/ > string?rev=276238&r1=276237&r2=276238&view=diff > > ============================================================ > ================== > > > > @@ -435,6 +461,7 @@ basic_string<char32_t> operator "" s( co > > */ > > > > #include <__config> > > +#include <string_view> > > This breaks the following, valid, C++14 code: > > #include <string> > #include <experimental/string_view> > using namespace std; > using std::experimental::string_view; > void f() { string_view sv; } > > Should <string> #include <string_view> even when we're not in C++17 mode? > Why? > > > #include <iosfwd> > > #include <cstring> > > #include <cstdio> // For EOF. > >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits