N4044: A Three-Class IP Address Proposal, Revision 1 -- Christopher Kohlhoff

A new WG21 paper is available. A copy is linked below, and 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: N4044

Date: 2014-05-24

A Three-Class IP Address Proposal, Revision 1

by Christopher Kohlhoff

Excerpt:

This proposal describes a three-class design for IP address classes:

  • A vocabulary type, ip::address, for use in IP version independent code.
  • An IPv4-specific type ip::address_v4.
  • An IPv6-specific type ip::address_v6.

 

N4041: Concerns with changing existing types in Technical Specifications -- Jonathan Wakely

A new WG21 paper is available. A copy is linked below, and 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: N4041

Date: 2014-05-23

Concerns with changing existing types in Technical Specifications

by Jonathan Wakely

Excerpts:

In Issaquah there were proposals targeting a TS which enhanced existing types in the Standard Library, in particular N3857 which modifies std::future, N3916 which modifies std::function, std::promise and std::packaged_task, and N3920 which modifies std::shared_ptr. ...

Following straw polls the decision was taken to allow a TS to change existing types in namespace std, so that users who opt in to use the TS (via some implementation defined means) get the enhanced versions without needing to change any code. ...

The decision made following the straw polls means for an implementation to ship a TS they must change existing classes in their implementation, which has the potential to make silent ABI changes to users' programs. ...
These issues can make it complicated for implementers to provide TS support, so that users have to wait longer before they have access to an implementation, which then makes it less likely the committee will get useful and timely feedback on the TS contents.

... 

N4034: Destructive Move -- Pablo Halpern

A new WG21 paper is available. A copy is linked below, and 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: N4034

Date: 2014-05-27

Destructive Move

by Pablo Halpern

Excerpt:

This paper proposes a function template for performing destructive move operations -- a type of move construction where the moved-from object, instead of being left in a “valid, but unspecified” state, is left in a destructed state. I will show that this operation can be made non-throwing in a wider range of situations than a normal move constructor, and can be used to optimize crucial operations, such as reallocations within vectors. An array version of the destructive move template is proposed specifically for moving multiple objects efficiently and with the strong exception guarantee.

The facilities described in this paper are targeted for a future library Technical Specification.

N4030: Feature-testing recommendations for C++ -- Clark Nelson

A new WG21 paper is available. A copy is linked below, and 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: N4030

Date: 2014-05-22

Feature-testing recommendations for C++

by Clark Nelson

Excerpt:

[1]   The new __has_cpp_attribute feature should be reviewed by EWG and WG21.

[2]   I have added indications of changes relative to the published SD-6. The preface is informative; changes are not marked.

[3]   This revision of this document contains STUBS for sections expected to be filled in later.

N4025: Exploring classes of runtime size -- Jeff Snyder and Richard Smith

A new WG21 paper is available. A copy is linked below, and 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: N4025

Date: 2014-05-23

Exploring classes of runtime size

by Jeff Snyder and Richard Smith

Excerpt:

During the Chicago meeting, several options were discussed for Arrays of Runtime Bound. These alternatives were summarised by Bjarne Stroustrup in N3810 [1]. One of the alternatives discussed, dubbed Array Constructors, was to introduce a core language feature that would allow types such as dynarray and bs_array to be written without special compiler support.

At the Issaquah meeting, J. Daniel Garcia proposed such a language feature, called Run-time bound array data members, in N3875 [2]. There was much discussion of this proposal, and of runtime-size types in general, with an overall feeling that it was worth pursuing a core language feature in this area.

This paper proposes an alternative way of allowing classes with runtime-bound array data members (aka runtime-size types) in C++ that aims to avoid various issues that were discussed at the Issaquah meeting, as well as exploring the impact that adding runtime-size types would have on the rest of the C++ language.

N4018-20: Core Issues Lists -- Mike Miller

New WG21 papers are available. Copies are linked below, and 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: N4018-20

Date: 2014-05-27

C++ Standard Core Language Active Issues, Revision 89

C++ Standard Core Language Defect Reports and Accepted Issues, Revision 89

C++ Standard Core Language Closed Issues, Revision 89

by William M. Miller

N4016: Light-Weight Execution Agents, Revision 2 --- Torvald Riegel

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

Date: 2014-05-23

Light-Weight Execution Agents, Revision 2

by Torvald Riegel

Excerpt:

Changes between N3874 and N4016:

  • Added underlying progress de nition based on implementation steps and scheduler guarantees (Section 2.1).
  • Refi ned forward progress classes (see Section 2.2): Base de finitions on implementation steps instead of blocking; merge SIMD+Parallel with the weaker variant of Parallel and rename to Weakly Parallel; re fine safety guarantee description of SIMD and rename to Strict SIMD.
  • A few changes in Section 2.3.
  • Added discussion of semantics of spawning and blocking on EAs (Section 2.4).
  • Added a more detailed overview of related proposals (Section 3).

N3997: Centralized Defensive-Programming Support for Narrow Contracts (R5) -- Lakos, Zakharov, Beels

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

Date: 2014-05-27

Centralized Defensive-Programming Support for Narrow Contracts (Revision 5)

by John Lakos, Alexei Zakharov, Alexander Beels

Excerpt:

In this proposal, we describe a centralized facility for supporting generalized runtime validation of function contracts. ..

This proposal is a revision to N3963.

In response to comments at Issaquah, a facility has been added to allow installation of a scoped, thread-local contract-violation handler. When a handler is installed using this facility, the handler will be used only by assertions in the thread from which the handler is installed, and only for the duration of the scope in which the handler is active. At the end of that scope, the previously installed handler for that thread will be restored -- i.e., either the previously installed local handler or (if no local handler was previously installed) the global one.
Additionally, an error in the specified behavior of the contract-assert test macros (section 11.2.5) has been corrected.

Finally, the formal wording has been extensively revised to increase clarity.

N4050: Dynarray Semi-Editorial Issues -- Lawrence Crowl

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

Date: 2014-05-26

Dynarray Semi-Editorial Issues

by Lawrence Crowl

Summary: Four lines of wording changes to N3820, the Array Extensions working paper.

N4036: Towards Implementation and Use of memory order consume -- McKenney, Riegel, Preshing, et al.

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

Date: 2014-05-22

Towards Implementation and Use of memory order consume

by Paul E. McKenney, Torvald Riegel, Je ff Preshing, et al.

Excerpt:

Despite the growing number of memory_order_consume use cases, there are no known high-performance implementations of memory_order_consume loads in any C11 or C++11 environments. This situation suggests that some change is in order: After all, if the standard does not support this use case, the corresponding users can be expected to continue to exploit whatever implementation-specifi c facilities provide the required functionality. This document therefore provides a brief overview of RCU in Section 2 and surveys memory_order_consume use cases within the Linux kernel in Section 3. Section 4 looks at how dependency ordering is currently supported in pre-C11 implementations, and then Section 5 looks at possible ways to support those use cases in existing C11 and C++11 implementations, followed by some thoughts on incremental paths towards official support of these use cases in the standards. Section 6 lists some weaknesses in the current C11 and C++11 speci cation of dependency ordering, and finally Section 7 outlines a few possible alternative dependency-ordering speci fications.

Note: SC22/WG14 liaison issue.