New paper: N3765, On Optional -- Tony Van Eerd

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

Date: 2013-09-01

On Optional

by Tony Van Eerd

Excerpt:

optional<T>::operator<() is currently defined in terms of std::less(). The reasoning for this was to
enable things like optional<T*> to work correctly in standard containers like std::map<>.

However, it would be better to instead specialize std::less for optional<T>.

New paper: N3764, Ruminations on relational operators -- 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: N3764

Date: 2013-09-02

Ruminations on relational operators

by Ville Voutilainen

Excerpt:

This paper enumerates existing practice for relational operators, enumerates various proposals for changing/fixing the relational operators for std::optional, and proposes to apply a strategy consistent with the relational operators of std::tuple.

New paper: N3761, Proposing type_at -- Sean Middleditch

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

Date: 2013-08-29

Proposing type_at<>

by Sean Middleditch

Excerpt:

The standard library currently is missing utility templates for extracting types from a variadic template type list, requiring users to instantiate a std::tuple<> in order to extract a type from a specific position within a variadic template type list.

A simple library addition can make certain recurisve uses of variadic templates easier and not dependent on the unrelated concept of a tuple.

This proposal is a pure library addition with no language changes or backwards compatibility regressions. The proposed language for value_at<> depends on N3638, though it could be written without this requirement using type_at<> instead.

New paper: N3760, [[deprecated]] attribute -- Alberto Ganesh Barbati

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

Date: 2013-09-01

[[deprecated]] attribute

by Alberto Ganesh Barbati

Excerpt:

This is an update of N3394, bearing changes proposed in the pre-Chicago Drafting Review Teleconference of 2013-08-26. The main difference is that the list of the cases where the attribute can be used has changed, by removing namespaces, enumerators, templates and adding non-static data members.

New paper: N3759, SIMD Vector Types -- Matthias Kretz

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

Date: 2013-08-30

SIMD Vector Types

by Matthias Kretz

Excerpt:

The challenge remains in providing portable SIMD types and operations.

... 

C++ has no means to use SIMD operations directly. There are indirect uses through loop vectorization or optimized algorithms (that use extensions to C/C++ or assembler for their implementation).

All compiler vendors (that I worked with) add intrinsics support to their compiler products to make these operations accessible from C. These intrinsics are inherently not portable and most of the time very directly bound to a specific instruction. (Compilers are able to statically evaluate and optimize SIMD code written via intrinsics, though.) ...

... This is a pure library proposal. It does depend on implementation-specific language extensions, though (e.g. SIMD intrinsics/builtins). The proposal builds upon the experience from the Vc library [1, 2].

New paper: N3758, Standard exception information types for std::exception -- Emil Dotchevski

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

Date: 2013-08-30

Standard exception information types for std::exception

by Emil Dotchevski

Excerpt:

This proposal defines standard exception information types compatible with N3757.

New paper: N3757, Support for user-defined exception information and diagnosti... -- Emil Dotchevski

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

Date: 2013-08-30

Support for user-defined exception information and diagnostic information in std::exception

by Emil Dotchevski

Excerpt:

This document proposes extending std::exception to allow exception-neutral contexts to intercept any std::exception object and store into it arbitrary additional data needed to handle the exception (the propagation of the original exception object can then be resumed by a throw without argument.)

New papers: N3754-56, Library Issues Lists -- Alisdair Meredith

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 numbers: N3754-56

Date: 2013-09-03

C++ Standard Library Active Issues List (Revision R84)

C++ Standard Library Defect Report List (Revision R84)

C++ Standard Library Closed Issues List (Revision R84)

by Alisdair Meredith

Excerpt:

The purpose of this document is to record the status of issues which have come before the Library Working Group (LWG) of the INCITS PL22.16 and ISO WG21 C++ Standards Committee. Issues represent potential defects in the ISO/IEC IS 14882:2011(E) document.

New paper: N3753, Centralized Defensive-Programming Support for Narrow C... -- J. Lakos, A. Zakharov

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

Date: 2013-08-30

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

by J. Lakos, A. Zakharov

Excerpt:

In this proposal, we describe a centralized facility for supporting defensive runtime validation of function preconditions. What makes this overall approach ideally (and uniquely) suited for standardization is that it allows the application to (1) indicate coarsely (at compile time) the extent to which precondition checking should be enabled based on how much defensive overhead the application (as a whole) can afford, and (2) specify exactly (at runtime) what action is to be taken should a precondition violation be detected. Moreover, the flexibility of this supremely general solution to precondition validation lends itself to a thorough, yet surprisingly easy-to-use testing strategy, often called negative testing, for which a supportive framework is also provided. Finally, this general approach to implementing and validating defensive checks is not just a good idea: It has been successfully used in production software at Bloomberg for over a decade, was presented at the ACCU conference in 2011, and is currently available along with copious usage examples embedded in running library code as part of Bloomberg’s open-source distribution of the BSL library at https://github.com/bloomberg/bsl.

New paper: N3752, Index Based Ranges -- A. Shödl, F. 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: N3752

Date: 2013-08-30

Index Based Ranges

by A. Shödl, F. Fracassi

Excerpt:

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.