Standardization

N3998: C++ Latches and Barriers (Revision 3) -- Alasdair Mackintosh and Olivier Giroux

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: N3998

Date: 2014-05-21

C++ Latches and Barriers (Revision 3)

by Alasdair Mackintosh and Olivier Giroux

Excerpt:

Revision History

... Add Concepts, simplify latch and barrier, add notifying_barrier
 

N4003-05: File System ITS ssues Lists -- Beman Dawes

New WG21 papers are available. Copies are linked below, and the papers 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 numbers: N4003-04

Date: 2014-03-23

Filesystem TS Active Issues List (Revision R0)

Filesystem TS Closed Issues List (Revision R0)

Filesystem TS Defect Report List (Revision R0)

by Beman Dawes

N4035: Implicit Evaluation of auto Variables and Arguments -- J Falcou, P Gottschling, H Sutter

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: N4035

Date: 2014-05-23

Implicit Evaluation of auto Variables and Arguments (revision 1)

by Joel Falcou, Peter Gottschling, Herb Sutter

Excerpt:

Revision to N3748

1. Prioritized syntax changed.

2. Third alternative introduced.

3. Library-based disabling introduced.

4. Some type traits removed.

Altogether, the proposal is a clear simpli cation to its predecessor.

1 Motivation

Type detection for variables from expressions' return type:

auto x= expr;

has proven high usability. However, it fails to meet most users' expectations and preferences when
proxies or expression templates (ET) are involved, e.g.:

matrix A, B;
// setup A and B
auto C= A  B;

Many people would expect C to be of type matrix as well. Whether C is a matrix depends on the
implementation of operator*. ...

N4009: Uniform Container Erasure -- Stephan T. Lavavej

[Ed.: Alternative title: "Finally! Let's please erase and remove the erase-remove idiom"...]

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: N4009

Date: 2014-05-22

Uniform Container Erasure

by Stephan T. Lavavej

Excerpt:

This is a proposal to add erase_if(container, pred), making it easier to eliminate unwanted elements correctly and efficiently.


II. The Problem

It's surprisingly difficult to eliminate unwanted elements from a container, given a predicate that distinguishes "bad" elements from "good" elements. ...

N3994: Range-Based For-Loops: The Next Generation (Revision 1) -- Stephan T. Lavavej

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: N3994

Date: 2014-05-22

Range-Based For-Loops: The Next Generation (Revision 1)

by Stephan T. Lavavej

Excerpt:

This updates N3853 (see [1]) which proposed the syntax "for (elem : range)", by adding support for attributes and answering additional questions. Please see the original proposal for the rationale behind this feature, which is not repeated here.

...

Q15. Has this been implemented?

A15. Yes!  David Vandevoorde and Jonathan Caves have reported that they were
able to implement N3853 in less than an hour each. ...

N3977: Resumable Functions -- Niklas Gustafsson

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: N3977

Date: 2014-05-22

Resumable Functions

by Niklas Gustafsson

Excerpt:

This document is directly related to N3970, the working draft for a Technical Specification focusing on concurrency. It proposes a number of additions to N3970.

In relation to the superseded document N3858, this paper drops all the background information and focuses on proposed edits to the Concurrency TS. For background information, the reader is referred to the superseded document.

It is hereby proposed that the following modifications to the standard be incorporated into the Concurrency Technical Specification, N3970. Section and paragraph numbers refer to the C++ standard working draft.

N4023: Working Draft, C++ Extensions for Library Fundamentals -- Jeffrey Yasskin

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: N4023

Date: 2014-05-21

Working Draft, C++ Extensions for Library Fundamentals

by Jeffrey Yasskin

Excerpt:

This technical specification describes extensions to the C++ Standard Library (1.2). These extensions are classes and functions that are likely to be used widely within a program and/or on the interface boundaries between libraries written by different organizations. ...

The goal of this technical specification is to build more widespread existing practice for an expanded C++ standard library. It gives advice on extensions to those vendors who wish to provide them.

N3976: Multidimensional bounds, index and array_view, revision 2 -- Ɓukasz Mendakiewicz, Herb Sutter

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: N3976

Date: 2014-05-21

Multidimensional bounds, index and array_view, revision 2

by Łukasz Mendakiewicz and Herb Sutter

Excerpt:

The feedback we have received during the Issaquah meeting was to prepare the wording for the proposal as-is. Consequently, only the wording (with minor improvements) is provided in this version. Interested readers should find the rationale, background information and design discussion in the previous revision of the proposal, viz. N3851.

N3975: URI - Proposed Wording (Revision 5) -- Glyn Matthews and Dean Michael Berris

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: N3975

Date: 2014-05-22

URI - Proposed Wording (Revision 5)

by Glyn Matthews and Dean Michael Berris

Excerpt:

Revisions to N3947

  1. Numerous updates to wording and style to make it more compatible with the standard document.
  2. Removed string_type member typedef for the uri class.
  3. Improved specification of the definition of port [uri.definition.port].
  4. Updated [uri.requirements] to be the same as the filesystem proposal.
  5. Renamed uri_error_code to uri_errc [class.uri_errc].
  6. Added an additional sentence in [uri.scope] to describe the uri_errc enum.
  7. Made member functions constexpr and noexcept, where appropriate.
  8. Improved specification of equality and comparison operators [uri.header-synopsis.equality-comparison].
  9. Added a section describing uri encoding conversions [class.uri.conversions]
  10. Added some sentences on make_error_code, make_error_condition and uri_category [uri.header-synopsis.error-handling].
  11. Updated uri_builder.
  12. Improved specification for to_uri and to_filesystem_path to handle the case where the URI or filesystem path is relative [uri.header-synopsis.filesystem-interop].

N4015: A proposal to add a utility class to represent expected monad -- V. Escriba and P. Talbot

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: N4015

Date: 2014-05-20

A proposal to add a utility class to represent expected monad

by Vicente J. Botet Escriba and Pierre Talbot

Excerpt:

Class template expected<E,T> proposed here is a type that may contain a value of type T or a value of type E in its storage space. T represents the expected value, E represents the reason explaining why it doesn't contains a value of type T, that is the unexpected value. Its interface allows to query if the underlying value is either the expected value (of type T) or an unexpected value (of type E). The original idea comes from Andrei Alexandrescu C++ and Beyond 2012: Systematic Error Handling in C++ talk. The interface and the rational are based on std::optional N3793 and Haskell monads. We can consider that expected<E,T> is a generalization of optional<T> providing in addition a monad interface and some specific functions associated to the unexpected type E. It requires no changes to core language, and breaks no existing code.