This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: C++14 implementation status


On 08/06/13 17:16, Jonathan Wakely wrote:
We should add a C++14 status table to the manual but in the meantime
here's a quick summary of the library status.

These are done:

N3669 Fixing constexpr member functions without const
N3668 exchange() utility function
N3670 Wording for Addressing Tuples by Type
N3656 make_unique
N3462 std::result_of and SFINAE
N3545 An Incremental Improvement to integral_constant
N3642 User-defined Literals for Standard Library Types
N3671 Making non-modifying sequence operations more robust
N3654 Quoted Strings Library Proposal (when Ed commits it)

I think these are already done, but need to check:

N3471 Constexpr Library Additions: utilities
N3469 Constexpr Library Additions: chrono
N3470 Constexpr Library Additions: containers

I've implemented these but need to write tests:

N3658 Compile-time integer sequences
N3659 Shared Locking in C++

I'm working on:

N3421 Making Operator Functors greater<>
N3657 Adding heterogeneous comparison lookup to associative containers

These ones are missing:

N3672 A proposal to add a utility class to represent optional objects
N3655 TransformationTraits Redux
N3662 C++ Dynamic Arrays
N3644 Null Forward Iterators

The traits one is simple but a bit tedious and the iterators one
probably only affects debug mode, but the other two are substantial
pieces of work.  Is anyone planning on working on <optional> or
<dynarray> yet?

If anyone works on optional (I would like to, but I'm not sure I will have time for all the nasty corner cases), it is possible to make optional take no more space for many standard library classes.

For example, in vector we know that the three internal pointers start, end, memory_end satisfy the conditions:

start <= end <= memory_end.

We could there choose some special impossible-to-reach state (like (void*)1, (void*)0, (void*)0) to represent 'empty'. I do this in my personal implementation of optional, but I have unfortunately lost track of all the rules to do with aliasing, which effect how to make this strictly legal :\

Chris



There are also some LWG issues from the last couple of meetings,
including vector<bool>::emplace, std::cbegin/std::cend,
allocator_traits::max_size(), which I have fixes for in my Git tree.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]