January 2014

N3840: A Proposal for the World’s Dumbest Smart Pointer, v3 -- Walter E. Brown

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

Date: 2014-01-01

A Proposal for the World’s Dumbest Smart Pointer, v3

by Walter E. Brown

Excerpt:

This paper proposes observer_ptr, a (not very) smart pointer type that takes no ownership responsibility for its pointees, i.e., for the objects it observes. As such, it is intended as a near drop-in replacement for raw pointer types, with the advantage that, as a vocabulary type, it indicates its intended use without need for detailed analysis by code readers.

N3839: Proposing the Rule of Five, v2 -- Walter E. Brown

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

Date: 2014-01-01

Proposing the Rule of Five, v2

by Walter E. Brown

Excerpt:

C++11 provided that a class’s copy functions may be implicitly declared and, if needed, implicitly defined as either deleted or defaulted, depending on the circumstances. At the same time, C++11 deprecated some of those circumstances. This paper proposes to obsolete this deprecated behavior, leaving us with the very teachable “rule of five” that no copy function, move function, or destructor will be compiler-generated if any of these functions is user-provided.

N3833-35: Core Issues Lists—Wiilliam M. Miller

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: N3833-35

Date: 2014-01-20

C++ Standard Core Language Active Issues, Revision 87

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

C++ Standard Core Language Closed Issues, Revision 87

by William M. Miller

Excerpt:

... a group of related documents that together describe the issues that have been raised regarding the C++ Standard.

N3831: Language Extensions for Vector level parallelism -- Robert Geva and Clark Nelson

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

Date: 2014-01-14

Language Extensions for Vector level parallelism

by Robert Geva and Clark Nelson

Excerpt:

This document proposes a language extension for vector level parallel programming (vector programming) as an extension to C++. It is based on both Cilk Plus and OpenMP 4.0, which have almost exactly the same mutual capability in regard to vector parallelism, however with keywords-based syntax instead of pragma-based syntax.

Both parallel loops and SIMD loops, in OpenMP and in Cilk Plus, require that the loops are “countable loops”. While the proposal does not suggest adding countable loops to the language as a distinct feature, the document presents the concept separately, so that it can be reused for both parallel loops and SIMD loops. The constructs actually being proposed are:

  1. Array notations (in part II)
  2. SIMD loops
  3. SIMD enabled functions.

N3830: Scoped Resource - Generic RAII Wrapper for the Standard Library -- P Sommerlad, A Sandoval

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

Date: 2013-12-23

Scoped Resource -- Generic RAII Wrapper for the Standard Library

by Peter Sommerlad and Andrew L. Sandoval

Excerpt:

Changes from N367: Replace all 4 proposed classes with a single class covering all use cases, using variadic templates, as determined in the Fall 2013 LEWG meeting.

The Standard Template Library provides RAII classes for managing pointer types, such as std::unique_ptr and std::shared_ptr. This proposal seeks to add a new generic RAII class which ties zero or more resources to a clean-up/completion routine which is bound by scope, ensuring execution at scope exit (as the object is destroyed) unless released or executed early or returned by moving its value.

N3829: apply() call a function with arguments from a tuple (V2) -- Peter Sommerlad

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

Date: 2013-12-23

apply() call a function with arguments from a tuple (V2)

by Peter Sommerlad

Excerpt:

This is a slightly update from the wording of N3802 as proposed by Jonathan Wakely.

N3658 and its predecessor N3493 introduced integer_sequence facility and provide application of this features, for example apply() that is proposed in this paper.

N3827: Working Draft Technical Specification - URI -- Glyn Matthews, 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: N3827

Date: 2014-01-19

Working Draft Technical Specification - URI

by Glyn Matthews, Dean Michael Berris

Excerpt:

Revisions to N3792

1. Normalization is now an invariant of the std::experimental::uri class.

2. Removed uri_normalization_level.

3. Removed normalize member function.

N3891: A proposal to rename shared_mutex to shared_timed_mutex -- Gor Nishanov, 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: N3891

Date: 2014-01-14

A proposal to rename shared_mutex to shared_timed_mutex

by Gor Nishanov, Herb Sutter

Excerpt:

We propose to rename shared_mutex to shared_timed_mutex:

(a) for consistency with the other mutexes (fixing naming inconsistency);

(b) to leave room for a shared_mutex which can be more efficient on some platforms than shared_timed_ mutex.

N3888: A Proposal to Add 2D Graphics Rendering and Display to C++ -- M McLaughlin, H Sutter, J 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: N3888

Date: 2014-01-18

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

by Michael McLaughlin, Herb Sutter, Jason Zink

Excerpt:

The goal of this proposal is to define a 2D drawing API based on a mechanical transformation of the cairo graphics library. Cairo is a comprehensive, cross-platform, widely-used, mature 2D graphics library written in C with an object-oriented style. ...

Computer graphics first appeared in the 1950s. The first recognized video game, Spacewar, was created in 1961. Today, computer graphics are pervasive in modern life, and are even replacing console-style I/O for basic user interaction on many mainstream platform targets. For example, writing a simple cout << "Hello, world!" doesn’t do anything useful on many tablets and smartphones.

Application programmers write programs that often need to render or display basic 2D graphics, including for introductory examples.

N3898: Hashing and Fingerprinting -- Geoff Pike

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

Date: 2014-01-20

Hashing and Fingerprinting

by Geoff Pike

Excerpt:

Given that multiple hash functions may traverse objects of some class, let's separate the code responsible for "traversing" the right parts of objects from the code that computes hashes.