Standardization

New paper: N3537, Clarifying Memory Allocation -- Lawrence Crowl and Chandler Carruth

A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N3537

Date: 2013-03-12

Clarifying Memory Allocation

by Lawrence Crowl and Chandler Carruth

Excerpt:

The allocation and deallocation of memory has become a significant expense in modern systems. ...

An essential requirement on implementations is that they deliver usable memory, not that they have a particular sequence of calls. We propose to explicitly decouple the implementation calls from the abstract calls. ... Together these changes enable implementations to reduce the number of malloc calls by avoiding them or fusing them. However, it would only enable fusing mallocs together into larger mallocs provided it can prove that both mallocs have overlapping lifetimes (ended by corresponding calls to free) such that the peak allocated memory of the program remains unchanged.

New paper: N3533, C++ Concurrent Queues -- Lawrence Crowl and Chris Mysen

A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N3533

Date: 2013-03-12

C++ Concurrent Queues

by Lawrence Crowl and Chris Mysen

Excerpt:

This paper revises N3434 = 12-0043 - 2012-01-14 as follows.

  • Add more exposition.
  • Provide separate non-blocking operations.

  • Add a section on the lock-free queues.
  • Argue against push-back operations.

  • Add a cautionary note on the usefulness of is_closed().
  • Expand the cautionary note on the usefulness of is_empty(). Add is_full().

  • Add a subsection on element type requirements.
  • Add a subsection on exception handling.

  • Clarify ordering constraints on the interface.
  • Add a subsection on a lock-free concrete queue.

  • Add a section on content iterators, distinct from the existing streaming iterators section.
  • Swap front and back names, as requested.

  • General expository cleanup.
  • Add an 'Revision History' section.

New paper: N3532, C++ Dynamic Arrays -- Lawrence Crowl and Matt Austern

A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N3532

Date: 2013-03-12

C++ Dynamic Arrays

by Lawrence Crowl and Matt Austern

Excerpt:

Instead of adopting C variable-length arrays, we propose to define a new facility for arrays where the number of elements is bound at construction. We call these dynamic arrays, dynarray. In keeping with C++ practice, we wish to make dynarrays usable with more than just automatic variables. But to take advantage of the efficiency stack allocation, we wish to make dynarray optimizable when used as an automatic variable.

New paper: N3527, optional -- Fernando Cacciola and Andrzej KrzemieĊ„ski

A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N3527

Date: 2013-03-10

A proposal to add a utility class to represent optional objects (Revision 3)

by Fernando Cacciola and Andrzej Krzemieński

Excerpt:

Class template optional<T> proposed here is a type that may or may not store a value of type T in its storage space. Its interface allows to query if a value of type T is currently stored, and if so, to access it. The interface is based on Fernando Cacciola's Boost.Optional library, shipping since March, 2003, and widely used. It requires no changes to core language, and breaks no existing code.

New paper: N3544, SG5 Transactional Memory Meeting Minutes, 2013-02-25 - 2013-03-04 -- Michael Wong

A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing.

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

Document number: N3544

Date: 2013-03-06

SG5: Transactional Memory (TM) Meeting Minutes 2013/02/25-2013/03/04

by Michael Wong

Excerpt:

Contents

Minutes for 2013/02/25 SG5 Conference Call ... 2

Minutes for 2013/03/04 SG5 Conference Call ... 9

New paper: N3538, Pass by Const Reference or Value -- Lawrence Crowl

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

Document number: N3538

Date: 2013-03-06

Pass by Const Reference or Value

by Lawrence Crowl

Excerpt:

Efficiency and expressiveness are hallmarks of C++, but sometimes those hallmarks conflict in ways that force programmers to compromise on one or the other. The progammer's choice of passing a given argument by const reference or by value is one of those compromises. That compromise has become more of a problem with modern calling conventions.

In this paper, we describe the problem, discuss possible approaches to reduce the problem, and explore a solution that introduces a new language feature...

New paper: N3535, C++ Stream Mutexes -- Lawrence Crowl

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

Document number: N3535

Date: 2013-03-06

C++ Stream Mutexes

by Lawrence Crowl

Excerpt:

At present, stream output operations guarantee that they will not produce race conditions, but do not guarantee that the effect will be sensible. Some form of external synchronization is required. Unfortunately, without a standard mechanism for synchronizing, independently developed software will be unable to synchronize.

 

This paper proposes a standard mechanism for locking streams...

New paper: N3531, User-defined Literals for Standard Library Types -- Peter Sommerlad

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

Document number: N3531

Date: 2013-03-08

User-defined Literals for Standard Library Types (version 3)

by Peter Sommerlad

Excerpt:

The standard library is lacking pre-de fined user-defi ned literals, even though the standard reserves names not starting with an underscore for it. Even the sequence of papers that introduced UDL to the standard contained useful examples of suffixes for creating values of standard types such as s for std::string, h for std::chrono::hours and i for imaginary parts of complex numbers.

Discussion on the reflector in May 2012 and in Portland Oct 2012 showed demand for some or even many pre-de fined UDL operators in the standard library...

New page: Papers and Mailings

There's a new page under Standardization -> Meetings and Participation that answers common questions about "what are papers and mailings all about?"

Papers and Mailings

This is timely information, because the pre-meeting mailing deadline is just a week away -- next Friday, March 15.

We'll continue to expand this and other standardization information to answer frequently asked questions and keep it current.