Alex Korban
Alex Korban

Reputation: 15126

State of C++11 standard support in libc++?

Is there a good source of information on C++11 standard support in libc++? Its web site says 98% of the standard is supported but I'd like to know what features the other 2% are.

Something similar to this list for libstdc++ would be nice: http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011

Upvotes: 5

Views: 1715

Answers (2)

adaminbiri
adaminbiri

Reputation: 51

A frustrating side note on std::quick_exit() and std::at_quick_exit() functions. They are still unimplemented in macOS's libc even after several years. Also there is a possible vulnerability in the C++ standard, where it states you can safely call std::quick_exit() from a signal handler, but it doesn't state the functions that are registered by std::at_quick_exit() must also meet the same requirements a regular signal handler does. I believe that might be the reason behind why those functions are not implemented yet.

Upvotes: 5

kennytm
kennytm

Reputation: 523284

Edit: From Howard Hinnant's comment below:

The chart is outdated already. I should update it or take it down. The only thing unimplemented in libc++ right now is 20.7.2.5 shared_ptr atomic access [util.smartptr.shared.atomic]. And I hope to get that done this weekend. [atomics] is there now. Oh, quick_exit is missing. I'm going to let the C library implement that.


The most recent and detailed information is already linked from the front page (doesn't mean it is new enough ☺).

The only major missing piece of C++'0x support is <atomic>.

Here is a by-chapter breakdown of what is passing tests and what isn't.

enter image description here

We can see that 76% of <atomic>, 3% of "[language.support]" and 2% of "[utilities]" are missing.

I don't think there would be more updated/detailed break down like the libstdc++ one.

Upvotes: 5

Related Questions