N3796: std::rand replacement -- Zhihao Yuan

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

Date: 2013-10-02

std::rand replacement

by Zhihao Yuan

Excerpt:

We want to deprecate std::rand friends, while “deprecation without a replacement” is a valid concern. This paper

  1. Propose replacement to the std::rand friends. As a global uniform random number generator, std::rand is considered both handy and useful.
  2. Expose the most widely-used combos from C++11 <random> without pushing the users to learn the whole design of <random>. Smoothing the learning curve can usually optimize the acceptance.

N3795: A more common version of algorithm std::partition_copy -- Vladimir Grigoriev

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

Date: 2013-09-16

A more common version of algorithm std::partition_copy

by Vladimir Grigoriev

Excerpt:

The existent version of algorithm std::partition_copy has limited capabilities. In fact this algorithm is similar to algorithm std::copy but instead of copying all elements of the source sequence in one destination sequence it redirects all elements of the source sequence in either of two destination sequences depending on the given predicate. As in the first case in the second case all elements of the source sequence are processed.

However sometimes there is a need to process only that elements of the source sequence that satisfy some criteria. To demonstrate the idea let consider a simple task to copy all positive elements of an integral array in one container and all negative elements of the same array in some other container without touching elements equal to zero. ...

N3794: Proposal to Add Multi-Dimensional Support to std::array -- Daryle Walker

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

Date: 2013-10-10

Proposal to Add Multi-Dimensional Support to std::array

by Daryle Walker

Excerpt:

The std::array class template adapts array types to standard library classes. But the adaptation is only for the outermost level; the inner dimensions of a multidimensional array type are not considered. This proposal is to change std::array to take multiple dimensions as variadic template arguments.

N3793: A proposal to add a utility class to represent optional objects (R5) -- Cacciola, Krzemieński

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

Date: 2013-10-03

A proposal to add a utility class to represent optional objects (Revision 5)

by Fernando Cacciola, Andrzej Krzemieński

Excerpt:

Class template optional<T> proposed here is a type that may or may not store a value of type T in its storage space. Its interface allows to query if a value of type T is currently stored, and if so, to access it. The interface is based on Fernando Cacciola's Boost.Optional library, shipping since March, 2003, and widely used. It requires no changes to core language, and breaks no existing code.

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

Date: 2013-10-11

Working Draft Technical Specification - URI

by Glyn Matthews, Dean Michael Berris

Excerpt:

The scope of this Technical Specification will include a single std::experimental::uri type, specifications about how the are intended to be processed and extended, including some additional helper types and functions. It will include a std::experimental::uri_builder type to build a URI from its components. Finally, it will include types and functions for percent encoding, URI references, reference resolution and URI normalization and comparison.

N3787: What can signal handlers do? (CWG 1441) -- Hans Boehm

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

Date: 2013-10-14

What can signal handlers do? (CWG 1441)

by Hans Boehm

Excerpt:

This is an attempt to summarize the current state of discussions around CWG issue 1441. Much of this discussion has occurred within SG1, and it has moved significantly past the original issue, so it seemed appropriate to turn it into a separate paper. This attempts to reflect the contributions of many people, especially Lawrence Crowl, Jens Maurer, Clark Nelson, and Detlef Vollmann.

This version is a minor revision of N3633. It reflects some changes due to SG1 concerns in Chicago, and reflects the easiest-to-address comments from the CWG discussion in Chicago. It does not reflect all of the latter. More discussion and almost certainly another paper revision is required.

N3785: Executors and schedulers, revision 3 -- C Mysen, N Gustafsson, M Austern, J 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: N3785

Date: 2013-10-08

Executors and schedulers, revision 3

by Chris Mysen, Niklas Gustafsson, Matt Austern, Jeffrey Yasskin

Excerpt:

This paper is a proposal for executors, objects that can execute units of work packaged as
function objects, in the form of an abstract base class and several concrete classes that
inherit from it. It is based on components that are heavily used in internal Google and
Microsoft code, with changes to better match the style of the C++ standard.

This proposal discusses the design decisions behind the API and also includes a first draft of
formal wording for the working paper.

N3784: Improvements to std::future and Related APIs -- Gustafsson, Laksberg, Sutter, Mithani

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

Date: 2013-09-27

Improvements to std::future and Related APIs

by Niklas Gustafsson, Artur Laksberg, Herb Sutter, Sana Mithani

Excerpt:

This proposal is an evolution of the functionality of std::future/std::shared_future. It details additions which can enable wait free compositions of asynchronous operations.

This document supersedes N3634: the title has been changed, and the proposed changes have been modified to be expressed as edits to the C++ Draft Standard.

New in this version: implicit unwrapping (one level) of future<future<R>> to future<R> in then().

N3782: Index Based Ranges (Rev. 1) -- Arno Schödl, Fabio Fracassi

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

Date: 2013-09-24

Index Based Ranges (Rev. 1)

by Arno Schödl, Fabio Fracassi

Excerpt:

Key Points

In contrast to most currently popular range implementations, which define range iterations in terms of (pairs of) iterators we propose to use range adaptors and indices (which is similar to N1873 - Cursor/Property Maps). The most important consequence of this is that we can avoid ”Fat Iterators” when stacking range adaptors, in particular range filters.

Ranges and Traversables

This paper is intended to be fully compatible with N3763 - Traversable Arguments. We intedend to use the Traversable concept as a basis wherever applicable. N3763 sets a good foundation for making Traversables easy to work with. In this paper we would like to explore the design space beyond this basis to make working with them both easy and powerful for programmers.