N3844: A SFINAE-Friendly std::iterator_traits -- 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: N3844

Date: 2014-01-01

A SFINAE-Friendly std::iterator_traits

by Walter E. Brown

Excerpt:

This paper proposes to reformulate the specification of iterator_traits so as to avoid a hard error when its template argument does not have the member types expected of a non-pointer iterator, and thus to make the trait conveniently usable in a SFINAE context.

N3843: A SFINAE-Friendly std::common_type -- 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: N3843

Date: 2014-01-01

A SFINAE-Friendly std::common_type

by Walter E. Brown

Excerpt:

This paper proposes to reformulate the specification of the common_type trait so as to avoid a hard error when there is no common type, and thus to make the trait conveniently usable in a SFINAE context.

N3842: A sample Proposal -- 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: N3842

Date: 2014-01-01

A sample Proposal

by Walter E. Brown

Excerpt:

This paper proposes to add to the standard library an interface for two algorithms carrying out random sampling. Such algorithms have long been part of the original (SGI) implementation of the Standard Template Library.

N3841: Discouraging rand() in C++14 -- 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: N3841

Date: 2014-01-01

Discouraging rand() in C++14

by Walter E. Brown

Excerpt:

In their final Chicago deliberations re [N3775] vis-à-vis National Body comment US21, LEWG and LWG achieved joint consensus (1) to deprecate std::random_shuffle for C++14 as proposed, and (2) to strengthen the existing Note in [c.math]/5 in order to further encourage rand() users to migrate to the <random> component of the C++11 standard library. This paper provides wording to implement these decisions.

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.