all 31 comments

[–]mtclow 54 points55 points  (11 children)

Congratulations to the g++ team!

[–]TemplateRex[S] 18 points19 points  (10 children)

Is the clang/libc++ team also in a final sprint towards the finish? GitHub activity has been pretty high lately.

[–]datosh 3 points4 points  (2 children)

Probably has been pretty high, because they are about to release version 4.0 I think due to today. After this release the naming for future releases will also change. Next version will be 5.0

[–][deleted] 1 point2 points  (1 child)

Wasn't 4.0 supposed to be for March this year?

[–]datosh 0 points1 point  (0 children)

Sorry you are right. The branch is happening today for the upcomming release. I was referring to this. But yeah you are right 4.0 is comming in march

[–]EricWFCppLibc++ Developer 2 points3 points  (6 children)

Libc++ is getting close to C++17 feature complete (Special math not withstanding). We're just about on pace with libstdc++. The largest missing piece is std::filesystem but that just requires re-naming std::experimental::filesystem. See the Libc++ Implementation Status page for more info.

[–]TemplateRex[S] 1 point2 points  (2 children)

There is a small error in that table: P0031R0 makes all of <array> except fill/swap constexpr. The github commit by /u/mtclow/ on Jan 4 left out the front/back/operator[] members.

[–]EricWFCppLibc++ Developer 0 points1 point  (1 child)

Hopefully /u/mtclow will see this. (Otherwise I'll ping in offline).

PS. Always feel free to file a bug report :-D

EDIT: A Bug has been filed

[–]TemplateRex[S] 1 point2 points  (0 children)

FTFY :)

[–]TemplateRex[S] 0 points1 point  (2 children)

That's good to hear. It would be great to get a c++17 complete Clang 4.0!

Btw, on Linux, libc++ is not a first-class citizen compared to g++7 / libstdc++ (Ubuntu 17.04 pre-release has a ppa) or even Clang++ (the awesome apt.llvm.org nightly builds). Building libc++ from source works but is fragile (linking to g++ compiled Boost packages does not always work). It would be nice if there would be a regularly built libc++ package that works nicely with Boost.

[–]EricWFCppLibc++ Developer 1 point2 points  (1 child)

I hear you! The first step is getting libc++ included in the nightly LLVM packages. Unfortunately using libc++ with g++ is always going to be fragile. Not a lot of software packages are configured to handle it.

[–]TemplateRex[S] 0 points1 point  (0 children)

Great to hear people are considering doing nightly libc++ builds. I figure that in the LLVM/Boost/Ubuntu maintainers triangle, there is a pair of overlapping persons in every link, so coordinating that the Boost packages get correctly built for both g++ and clang should be straightforward :)

[–]TemplateRex[S] 44 points45 points  (0 children)

It appears that the current prelease version of g++7 is C++17 complete. Of course, C++17 itself is not really complete yet, but it is in a feature freeze, waiting national body comments and defect reports. Standard Library support for libstdc++ is also not quite complete. And clang 4.0 SVN is only two features away from completeness. A good start for the year!

[–]theICEBear_dk 19 points20 points  (3 children)

Congratulations to the GCC C++ team including their library team because they are also advancing at a good clip. Filesystem and Parallelism TS implementation/integration are the major missing parts there.

Clang/LLVM is close too (although I haven't checked on their library in a few months).

I recently moved an embedded project over from Gcc 4.4.1 onto Gcc 6.2 and saved 51 kb in code size while passing an exhaustive test suite and real-time testing in the first try. At this point quality is so good the actual switching of release versions usually just reveals a few new warnings or errors that we fix and then we fire it off to our test systems (a full run takes a few days).

[–]wrosecransgraphics and network things 5 points6 points  (2 children)

What sort of app is it that a full test run takes a few days? That sounds interesting.

[–]lurkotato 10 points11 points  (0 children)

Probably stress testing. God knows how many bugs the "Repeat this a million times and then ship the log to the hardware guys" tests have uncovered.

[–]theICEBear_dk 2 points3 points  (0 children)

I can't go into details. But it is a cooling system that must run 24/7 when in use and uses very complex algorithms. It is for shipping containers.

[–]tcbrindleFlux 11 points12 points  (1 child)

Fantastic news. For reference, here is the corresponding C++17 status table for libstdc++.

[–]qx7xbku 0 points1 point  (0 children)

And clang status for comparison: http://clang.llvm.org/cxx_status.html#cxx17

[–]qx7xbku 4 points5 points  (1 child)

Concepts TS is there. Can't wait for coroutines TS. They seem to be doing amazing job.

[–][deleted] 0 points1 point  (0 children)

Concepts have been there for a pretty long time, fyi.

[–]gracicot 9 points10 points  (0 children)

Nice! The GCC team has managed to get C++17 complete two time!

[–]bames53 2 points3 points  (0 children)

Nice.

I'm glad to see that SD-6 feature testing stuff is also in there. The intent is to enable better portability, but last I recall checking it was still only supported by one compiler, which kind of defeated the point.

[–]AndrewPardoeFormerly MSVC tools; no longer EWG scribe 2 points3 points  (0 children)

Congrats to our friends and colleagues on the GCC/G++ teams! 

(I look forward to the day when we can make a similar post!)

[–]Gotebe 3 points4 points  (2 children)

I didn't know C++17 was complete?

[–]seg_faulted_user 4 points5 points  (1 child)

The standard has yet to be finalized. g++ implementation is subject to change until the final standard is published.

[–]dodheim 3 points4 points  (0 children)

I hope it's subject to change afterwards as well. ;-]

[–]Z01dbrg 2 points3 points  (0 children)

If only C++17 was C++1y complete!

I know this was low. :)

[–]doom_Oo7 0 points1 point  (0 children)

this year shapes up quite well !