July 2014

N4070: Improving the specification of the vector execution policy in Parallelism TS -- Hans-J. Boehm

This paper was approved at the June ISO C++ meeting.

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

Date: 2014-06-20

Improving the specification of the vector execution policy in Parallelism TS

by Hans-J. Boehm

Excerpt:

The Parallelism TS currently prohibits synchronization in functions called from vector algorithms, but says nothing about which standard library functions may invoke synchronization. Unfortunately, due to inline expansion, and the possibility of compiling nested functions in vector mode even if not inlined, this also applies to nested internal synchronization.

This is a very rough initial attempt at somewhat pinning this down. I expect this to generate PDTS comments. The reason to apply a rough fix now is to point out the issue, and hopefully generate much more relevant comments sooner rather than later.

N4077: Experimental shared_ptr for Library Fundamentals TS -- Jonathan Wakely

This paper was approved at the June ISO C++ meeting for the Library Fundamentals TS.

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

Date: 2014-06-20

Experimental shared_ptr for Library Fundamentals TS

by Jonathan Wakely

Excerpt:

This paper provides wording to the effect that it creates independent fundamental-ts types in namespace std::experimental for shared_ptr, weak_ptr, owner_less, enable_shared_from_this, and all relevant functions and hash specializations.

N4067: Experimental std::function etc. -- Daniel Krügler

This paper was approved at the June ISO C++ meeting for the Library Fundamentals TS.

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

Date: 2014-06-20

Experimental std::function etc.

by Daniel Krügler

Excerpt:

This paper provides wording to the effect that it creates independent fundamental-ts types in namespace std::experimental for function, promise, and packaged_task.

N4076: A proposal to add a generalized callable negator (Revision 4) -- Tomasz Kaminski

This paper was approved at the June ISO C++ meeting for the Library Fundamentals TS.

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

Date: 2014-06-17

A proposal to add a generalized callable negator (Revision 4)

by Tomasz Kaminski

Excerpt:

This proposal is to add function template not_fn that will allow to create negator of any callable object.

N4059: Spring 2015 C++ Standards Committee Meeting -- Michael Price

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

Date: 2014-07-03

Spring 2015 C++ Standards Committee Meeting

by Michael Price

Excerpt:

Perceptive Software is pleased to host the Spring 2015 C++ Standards Committee Meeting on May 4-9, 2015.

Meeting location

Perceptive Software World Headquarters
8900 Renner Blvd.
Lenexa, Kan. 66219

(Located within the Kansas City metropolitan area)

N4073: A Proposal to Add 2D Graphics Rendering and Display to C++, Rev 2 -- McLaughlin, Sutter, Zink

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

Date: 2014-07-03

A Proposal to Add 2D Graphics Rendering and Display to C++, Revision 2

by Michael B. McLaughlin, Herb Sutter, Jason Zink

Excerpt:

The goal of this proposal is to define a 2D drawing API for the C++ programming language. This proposal is a revision of N4021. It resolves some defects in that document and adds several features which were intended for N4021 but were not completed in time. It was presented in draft form to SG13 at the Rapperswil meeting in June 2014. Based on the consensus feedback received at the meeting, a full Technical Specifications section written in the language, style, and format of the ISO/IEC C++ Standard will be included in the next revision of this proposal.

N4116: Nested Namespace Definition (rev 1) -- Andrew Tomazos and Robert Kawulak

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

Date: 2014-07-02

Nested Namespace Definition (rev 1)

by Andrew Tomazos and Robert Kawulak

Excerpt:

EWG did meet and discuss N4026 in Rapperswil, including each of the open issues. Several
different votes were taken. By far the strongest consensus was for just the basic facility with no
attributes, no aliases and no inline:

SF: 11 F: 5 N: 3 A: 0 SA: 0

Furthermore, if it is implemented in this configuration, these extra features can always be added
later by a separate proposal.

We therefore formally propose that the following wording corresponding to the “basic facility” be
added to the working draft: ...

N4055: Ruminations on (node-based) containers and noexcept -- Ville Voutilainen

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

Date: 2014-07-02

Ruminations on (node-based) containers and noexcept

by Ville Voutilainen

Excerpt:

There are quite many standard containers that do not have noexcept move constructors required by their synopsis. Implementations can strengthen such a noexcept-specification as per [res.on.exception.handling]/1: "Any of the functions defined in the C ++ standard library can report a failure by throwing an exception of a type described in its Throws: paragraph. An implementation may strengthen the exception-specification for a non-virtual function by adding a non-throwing noexcept-specification."

The issue is that this means that the performance of operations such as vector<T>::push_back becomes dependent on the noexcept-specification of the move constructor of T, and if T has a container member, the noexcept-specification of that container influences the noexcept-specification of the move constructor of T in implementation-specific ways.

This paper explores the reasons of why container move constructors are not noexcept on some implementations. A very good explanation is written below.

This paper also makes some moderate suggestions on what the solution(s) should be.

Nicolai Josuttis proposes some of those moderate suggestions in his paper N4002.

N4113: Reflection Type Traits For Classes, Unions and Enumerations (rev 3) -- A. Tomazos, C. Kaeser

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

Date: 2014-07-02

Reflection Type Traits For Classes, Unions and Enumerations (rev 3)

by Andrew Tomazos and Christian Kaeser

Excerpt:

We propose the addition of two new kinds of type trait, and four new type traits to the Metaprogramming and Type Traits Standard Library [meta] for the purposes of lowlevel reflection of classes, unions and enumerations. These primitives are thin wrappers for compiler instrinsics, require zero core language changes, and are designed to be consistent with the existing [meta] library. Pure library authors can then compose the primitives to provide higher-level reflection libraries and facilities.

This proposal revises N4027 in accordance with SG7 feedback from Rapperswil (N4027 revises
N3815 with SG7 feedback from Issequah).