Move filesystem to std for C++17

Ed Smith-Rowland 3dw4rd@verizon.net
Fri Mar 11 16:21:00 GMT 2016


All,

I first want to apologize for the tone of my last message regarding 
moving filesystem to std for C++17.
I was being a dick.  I didn't mean to disparage the efforts of the 
committee or any of the maintainers here (especially Jonathan).
I also greatly appreciate the support this community gives me.

Anyway, I decided to take a look myself and discovered there are some 
issues worth talking about first.

1.  We need to support experimental/filesystem for C++14 and lower, and 
without complaint, so as not to break code.

2.  We need to support experimental/filesystem for C++17 and up but I 
think we should warn.
    a.  Deprecate std::experimental::filesystem for c++17 and up.
    b.  We have the ability to add [[deprecated]] to a namespace but i'm 
not sure the deprecation mechinism is wired to actually do the thing 
with ns.
    c.  I think this:

namespace std::experimental::filesystem::v1
{
   using namespace std::filesystem;
}}}}

   d.  I'm not sure what happens when v2 rolls around.  Deal with it later.

3.  Move <filesystem> to std.  New <experimental/filesystem> points to 
<filesystem>.

4.  I think we should move the entrails of filesystem from 
experimental/bits up to bits.
    a.  Should we make bits/filesystem, bits/specfun, ...?  It might be 
easier to look at.  Drop prefixes for impl sources.
    b.  I forgot.

5.  Testsuite
    a. A lot of components are moving to std from experimental.
    b. It seems bad to duplicate testsuite
    c. Move the main testsuite from experimetal to an appropriate place in

5.  The library...  Hmm...

I'm willing to give this a bash after I make sure our specfuns are 
really good for gcc6/C++17.

This isn't horrible - mostly rough carpentry but it might not be stage3 
either.

Regards,
Ed Smith-Rowland



More information about the Libstdc++ mailing list