[libcxx] r276238 - Implement std::string_view as described in http://wg21.link/P0254R1. Reviewed as https://reviews.llvm.org/D21459

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 15 18:35:31 PDT 2017


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 <
dexonsmith at apple.com> wrote:

>
> > On Jul 20, 2016, at 22:31, Marshall Clow via cfe-commits <
> cfe-commits at 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.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170615/8845d7c6/attachment.html>


More information about the cfe-commits mailing list