Pre-Chicago standards papers mailing available

The official pre-meeting standards papers mailing is now available. It includes the spring meeting agenda, updated issues lists, and a number of new papers including some that came through the public std-proposals forum. (Update: Please also direct discussion about these papers to that forum.)

Note: All of these papers have also been posted already to this site’s Standardization RSS feed. Subscribe to that feed to see the papers as they appear.

 

N3704 AGENDA, PL22.16 Meeting No. 61, WG21 Meeting No. 56, September 23-28, 2013 - Chicago, IL, USA Stephen D. Clamage 2013-07-13 2013-09      
N3705 Agenda and Meeting Notice for WG21 Telecon Meeting Herb Sutter 2013-07-23 2013-09      
N3706 C++ Distributed Counters Lawrence Crowl 2013-09-01 2013-09 N3355 Concurrency  
N3707 2014-02 Meeting Invitation and Information Herb Sutter 2013-08-06 2013-09      
N3708 A proposal to add coroutines to the C++ standard library O. Kowalke, N. Godspeed 2013-03-04 2013-09   Library  
N3709 Minutes for July 2013 Santa Clara SG1 Meeting H.. Boehm, J. Hoberock, A. Mackintosh 2013-8-29 2013-09      
N3710 Specifying the absence of "out of thin air" results (LWG2265) H. Boehm, et al. 2013-8-29 2013-09   Concurrency  
N3711 Task Groups As a Lower Level C++ Library Solution To Fork-Join Parallelism A. Laksberg, H. Sutter 2013-08-15 2013-09   Concurrency  
N3712 Policy-Based Design for Safe Destruction in Concurrent Containers Arch D. Robison 2013-08-30 2013-09   Concurrency  
N3713 C++ Standard Core Language Active Issues, Revision 85 William M. Miller 2013-09-03 2013-09 N3674 Core  
N3714 C++ Standard Core Language Defect Reports and Accepted Issues, Revision 85 William M. Miller 2013-09-03 2013-09 N3675 Core  
N3715 C++ Standard Core Language Closed Issues, Revision 85 William M. Miller 2013-09-03 2013-09 N3676 Core  
N3716 A printf-like Interface for the Streams Library Zhihao Yuan 2013-08-18 2013-09 N3506 Library  
N3717 SG5: Transactional Memory (TM) Meeting Minutes 2013/06/24-2013/08/26 Michael Wong 2013-08-30 2013-09      
N3718 Transactional Memory Support for C++ M. Wong, V. Luchangco, J. Maurer, M. Moir, et al. 2013-08-30 2013-09   Evolution  
N3719 Extend INVOKE to support types convertible to target class Tomasz Kamiński 2013-08-17 2013-09   Library  
N3720 Working Draft Technical Specification - URI G. Matthews, D. Berris 2013-08-30 2013-09 N3625 Networking  
N3721 Improvements to std::future<T> and Related APIs N. Gustafsson, A. Laksberg, H. Sutter, S. Mithani 2013-08-30 2013-09 N3634 Concurrency  
N3722 Resumable Functions N. Gustafsson, D. Brewis, H. Sutter, S. Mithani 2013-08-30 2013-09 N3650 Concurrency  
N3723 Extend operator-> to support rvalues Pascal Constanza 2013-08-23 2013-09   Evolution  
N3724 A Parallel Algorithms Library J. Hoberock, O. Giroux, V. Grover, H. Sutter, et al. 2013-08-30 2013-09 N3554 Concurrency  
N3725 Original Draft Specification of Transactional Language Constructs for C++ Version 1.1 (February 3, 2012) M. Wong, A. Adl-Tabatabai, T. Shpeisman, J. Gottschlich 2013-08-30 2013-09   Evolution  
N3726 Polymorphic Memory Resources Pablo Halpern 2013-09-02 2013-09 N3525 Library  
N3727 A proposal to add invoke function template Tomasz Kamiński 2013-08-01 2013-09   Library  
N3728 Packaging Parameter Packs (Rev. 2) Mike Spertus 2013-09-03 2013-09 N3416 Reflection  
N3729 Invocation type traits Mike Spertus 2013-09-02 2013-09 N3579 Library  
N3730 Specializations and namespaces Mike Spertus 2013-08-28 2013-09   Evolution  
N3731 Executors and schedulers, revision 2 C. Mysen, N. Gustafsson 20130825 2013-09 N3562 Concurrency  
N3732 Value-Oriented Concurrent Unordered Containers A. Robison, A. Potapov, A. Malakhov 2013-08-30 2013-09   Concurrency  
N3733 ISO/IEC CD 14882, C++ 2014, National Body Comments Barry Hedquist 2013-08-26 2013-09      
N3734 Vector Programming: A proposal for WG21 Robert Geva 2013-09-02 2013-09   Concurrency  
N3735 On the difference between parallel loops and vector loops Robert Geva 2013-09-02 2013-09   Concurrency  
N3736 C++ Standard Evolution Active Issues List (Revision R03) Ville Voutilainen 2013-08-27 2013-09 N3682 Evolution  
N3737 C++ Standard Evolution Completed Issues List (Revision R03) Ville Voutilainen 2013-08-27 2013-09 N3683 Evolution  
N3738 C++ Standard Evolution Closed Issues List (Revision R03) Ville Voutilainen 2013-08-27 2013-09 N3684 Evolution  
N3739 Improving pair and tuple, revision 1 Daniel Krügler 2013-09-02 2013-09 N3680 Library  
N3740 A Proposal for the World's Dumbest Smart Pointer, v2 Walter E. Brown 2013-08-30 2013-09 N3514 Library  
N3741 Toward Opaque Typedefs for C++1Y, v2 Walter E. Brown 2013-08-30 2013-09 N3515 Evolution  
N3742 Three <random>-related Proposals, v2 Walter E. Brown 2013-08-30 2013-09 N3547 Library  
N3743 Conditionally-supported Special Math Functions for C++14, v2 Walter E. Brown 2013-08-30 2013-09 N3548 Library  
N3744 Proposing [[pure]] Walter E. Brown 2013-08-30 2013-09   Evolution  
N3745 Feature-testing recommendations for C++ Clark Nelson 2013-08-28 2013-09 N3694 Evolution  
N3746 Proposing a C++1Y Swap Operator, v2 Walter E. Brown 2013-08-30 2013-09 N3553 Evolution  
N3747 A Universal Model for Asynchronous Operations Christopher Kohlhoff 2013-09-01 2013-09   Concurrency  
N3748 Implicit Evaluation of "auto" Variables and Arguments P. Gottschling, J. Falcou, H. Sutter 2013-08-30 2013-09   Evolution  
N3749 Constexpr Library Additions: functional Marshall Clow 2013-08-31 2013-09   Library  
N3750 C++ Ostream Buffers Lawrence Crowl 2013-09-01 2013-09   Concurrency  
N3751 Object Lifetime, Low-level Programming, and memcpy Gabriel Dos Reis 2013-09-03 2013-09   Undefined behavior  
N3752 Index Based Ranges A. Shödl, F. Fracassi 2013-08-30 2013-09   Ranges  
N3753 Centralized Defensive-Programming Support for Narrow Contracts (Revision 1) J. Lakos, A. Zakharov 2013-08-30 2013-09 N3604 Library  
N3754 C++ Standard Library Active Issues List (Revision R84) Alisdair Meredith 2013-09-03 2013-09 N3687 Library  
N3755 C++ Standard Library Defect Report List (Revision R84) Alisdair Meredith 2013-09-03 2013-09 N3688 Library  
N3756 C++ Standard Library Closed Issues List (Revision R84) Alisdair Meredith 2013-09-03 2013-09 N3689 Library  
N3757 Support for user-defined exception information and diagnostic information in std::exception Emil Dotchevski 2013-08-30 2013-09   Library  
N3758 Standard exception information types for std::exception Emil Dotchevski 2013-08-30 2013-09   Library  
N3759 SIMD Vector Types Matthias Kretz 2013-08-30 2013-09   Library  
N3760 [[deprecated]] attribute Alberto Ganesh Barbati 2013-09-01 2013-09 N3394 Core  
N3761 Proposing type_at<> Sean Middleditch 2013-08-29 2013-09   Library  
N3762 string_view: a non-owning reference to a string, revision 5 Jeffrey Yasskin 2013-09-01 2013-09 N3685 Library  
N3763 Traversable arguments for container constructors and methods, wording revision 4 Jeffrey Yasskin 2013-09-01 2013-09 N3686 Library  
N3764 Ruminations on relational operators Ville Voutilainen 2013-09-02 2013-09   Library  
N3765 On Optional Tony Van Eerd 2013-9-01 2013-09   Library  
N3766 The identity type transformation Jeffrey Yasskin 2013-09-03 2013-09   Library  

 

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.