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)

New core language papers adopted for C++17

Note: The following new core language 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.

N4259: Wording for std::uncaught_exceptions (Herb Sutter)

N4261: Proposed resolution for Core Issue 330: Qualification conversions and pointers to arrays of pointers (Jens Maurer)

N4262: Wording for Forwarding References (Herb Sutter, Bjarne Stroustrup, Gabriel Dos Reis)

N4266: Attributes for namespaces and enumerators (Richard Smith)

N4267: Adding u8 character literals (Richard Smith)

N4268: Allow constant evaluation for all non-type template arguments (Richard Smith)

N4285: Cleanup for exception-specification and throw-expression (Jens Maurer)

N4295: Folding expressions (Andrew Sutton, Richard Smith)

N4265, N4272: Transactional Memory TS wording -- Michael Wong, Jens Maurer, et al.

Note: The following papers were approved on Saturday at the end of last week's ISO C++ meeting for the Transactional Memory Technical Specification.

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.

N4272: Working Draft, Technical Specification for C++ Extensions for Transactional Memory (Michael Wong)

N4265: Transactional Memory Support for C++: Wording (revision 3) (Jens Maurer, et al.)

Effective Modern C++ available today -- Scott Meyers

Available today on O'Reilly and Amazon, in print in early December:

EMC++ Exits Publishing Purgatory!

by Scott Meyers

From the announcement:

I just received the following from O'Reilly: "Congratulations! Your book went to print on Friday, and we've now completed production. The Retail Availability Date for ebooks on oreilly.com and Amazon is tomorrow, 11/11. For print books, it's estimated at 12/2."

Trip report: using std::cpp 2014 -- J. Daniel Garcia

usingcpp2014.PNGThis just in from our Spanish correspondent:

Event report: using std::cpp 2014 at Spain

J. Daniel Garcia

From the article:

The success of this event is fully in line with several other international events as the recent CppCon in USA or Meeting C++ in Germany and can be seen as another proof of the high interest with which the industry has received the new versions of the C++ standard. It is also worth mentioning that as many other countries there is also a farly active C++ meetup group in Spain...

Where will Evolution lead C++17?

The third part of my series about the proposals for Urbana is about the subgroup evolution:

Where will Evolution lead C++17?

by Jens Weller

From the article:

This is the third part in my series about the proposals for the current C++ committee meeting in Urbana. This time its all about the subgroup Evolution, which has the most papers, so this is only the first part. The previous parts were about concurrency, and Part 2 about core, networking, models and undefined behavior.

Ranges, Concepts, and the Future of the Standard Library -- Eric Niebler

Some of the promising news from this week's ISO C++ meeting, which concludes tomorrow.

Ranges, Concepts, and the Future of the Standard Library

by Eric Niebler

From the article:

Frequent readers of this blog know that over the past year, I’ve been working on a modern range library suitable for standardization, integrating good ideas from hither and thither — particularly from Sean Parent and Andrew Sutton — resulting in a library that’s available immediately, and a proposal to the standardization committee. This week I presented my work to the C++ Committee Meeting in Urbana-Champaign. The ensuing discussion has implications for the future of the Standard Library...

FUNGENOOP Programming -- Tony DaSilva

fungenoop.PNGIn case you missed it, here's a nice little Friday nugget:

FUNGENOOP Programming

by Tony DaSilva

From the article:

In his recent talks on C++, Bjarne Stroustrup always sets aside a couple of minutes to go off on a mini-rant against "paradigm shifts"...

From Mathematics to Generic Programming -- Alexander A. Stepanov, Daniel E. Rose

Hot off the presses today, at 320 pages:

From Mathematics to Generic Programming

By Alexander A. Stepanov, Daniel E. Rose

From the book description:

In this substantive yet accessible book, pioneering software designer Alexander Stepanov and his colleague Daniel Rose illuminate the principles of generic programming and the mathematical concept of abstraction on which it is based, helping you write code that is both simpler and more powerful.

If you’re a reasonably proficient programmer who can think logically, you have all the background you’ll need. Stepanov and Rose introduce the relevant abstract algebra and number theory with exceptional clarity. They carefully explain the problems mathematicians first needed to solve, and then show how these mathematical solutions translate to generic programming and the creation of more effective and elegant code. To demonstrate the crucial role these mathematical principles play in many modern applications, the authors show how to use these results and generalized algorithms to implement a real-world public-key cryptosystem.

As you read this book, you’ll master the thought processes necessary for effective programming and learn how to generalize narrowly conceived algorithms to widen their usefulness without losing efficiency. You’ll also gain deep insight into the value of mathematics to programming–insight that will prove invaluable no matter what programming languages and paradigms you use.

You will learn about

  • How to generalize a four thousand-year-old algorithm, demonstrating indispensable lessons about clarity and efficiency
  • Ancient paradoxes, beautiful theorems, and the productive tension between continuous and discrete
  • A simple algorithm for finding greatest common divisor (GCD) and modern abstractions that build on it
  • Powerful mathematical approaches to abstraction
  • How abstract algebra provides the idea at the heart of generic programming
  • Axioms, proofs, theories, and models: using mathematical techniques to organize knowledge about your algorithms and data structures
  • Surprising subtleties of simple programming tasks and what you can learn from them
  • How practical implementations can exploit theoretical knowledge