New standard library papers adopted for C++17

Note: The following new standard library papers (among other already-posted ones) were approved on Saturday at the end of last week's ISO C++ meeting for the C++ working paper

New WG21 papers are available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

N4258: Cleaning-up noexcept in the Library (Nicolai Josuttis)

N4277: TriviallyCopyable reference_wrapper (Agustín Bergé)

N4279: Improved insertion interface for unique-key maps (Thomas Köppe)

N4280: Non-member size() and more (Riccardo Marcangelo)

N4284: Contiguous Iterators (Jens Maurer)

Add a Comment

Comments are closed.

Comments (1)

0 0

david.grigsby said on Nov 16, 2014 07:10 PM:

Regarding N4258, this:
noexcept(allocator_traits<Allocator>::propagate_on_container_swap::value 
|| allocator_traits<Allocator>::is_always_equal::value)


is pretty arduous for the non-cognoscenti and it appears in multiple signatures, including for some very common methods that will frequently be read by non-experts (you can just imagine them viewing the declaration for string::swap on cplusplus.com and shaking their heads at the inscrutability).

Perhaps the condition that is being expressed here could itself be clearly named as a trait? This new trait would then do the appropriate compound evaluation.

This would definitely be more readable, possibly more clear, and would require fewer changes to the standard if this condition is later found to need even further refinement (which seems entirely possible).

The disadvantages would be another name, and the fact that one would have to drill-in to fully understand the condition. That might be ok though, the majority of readers might not *want* to have to digest the exact condition for most readings.