N3863: Private Extension Methods -- Matthew Fioravante

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

Date: 2013-12-08

Private Extension Methods

by Matthew Fioravante

Excerpt:

This proposal adds a new mechanism for declaring non-virtual private class methods and static private class methods outside of the class definition.

N3862: Towards a Transaction-safe C++ Standard Library: std::list -- Gottschlich, Spear, Wong et al.

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

Date: 2014-01-20

Towards a Transaction-safe C++ Standard Library: std::list

by Justin Gottschlich, Michael Spear, Michael Wong, et al.

Excerpt:

This paper documents our effort to transactionalize a C++ Standard Template Library (STL) container to demonstrate the feasibility of the transactional language constructs proposed by Study Group 5 (SG5): Transactional Memory. We began this study with std::list and made it transaction-safe using the transactional memory support in GCC 4.9. The changes were minimal and were generally restricted to the addition of transaction_safe keyword to a few interfaces such as allocate, deallocate, and swap functions. The rest of the changes were added to internal helper functions. Some of the issues that we considered were the constant time complexity of std::list.size() and friends, and its const noexcept nature. This experience shows that the safety of STL containers must not be specified directly, but instead should be inherited from the type with which the container is instantiated. For our future work, we plan to expand this effort to other STL containers as well as converting the clang/llvm C++ library.

N3861: SG5: Transactional Memory (TM) Meeting Minutes 2013/09/09-2014/01/20 -- Michael Wong

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

Date: 2014-01-20

SG5: Transactional Memory (TM) Meeting Minutes 2013/09/09-2014/01/20

by Michael Wong

Excerpt:

Minutes for 2013/09/09 SG5 Conference Call ............................................................................... 2
Minutes for 2013/10/14 SG5 Conference Call ............................................................................... 6
Minutes for 2013/10/28 SG5 Conference Call ............................................................................. 11
Minutes for 2013/11/11 SG5 Conference Call ............................................................................. 15
Minutes for 2013/11/25 SG5 Conference Call ............................................................................. 19
Minutes for 2013/12/09 SG5 Conference Call ............................................................................. 22
Minutes for 2014/01/06 SG5 Conference Call ............................................................................. 27
Minutes for 2014/01/13 SG5 Conference Call ............................................................................. 31

N3859: Transactional Memory Support for C++ -- Victor Luchango et al.

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

Date: 2014-01-20

Transactional Memory Support for C++

by Victor Luchango et al.

Excerpt:

Transactional memory supports a programming style that is intended to facilitate parallel execution with a comparatively gentle learning curve. This document describes a proposal developed by SG5 to introduce transactional constructs into C++ as a Technical Specification. It is a revision of N3718, an earlier document with the same title, presented at the September 2013 meeting in Chicago. However, this document is self-contained, and can be read independently of N3718. At the Chicago meeting, we received encouraging and helpful feedback, which we have used to revise this proposal.

N3856: Unforgetting standard functions min/max as constexpr -- Gabriel Dos Reis

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

Date: 2014-01-20

Unforgetting standard functions min/max as constexpr

by Gabriel Dos Reis

Excerpt:

This short paper proposes to make the standard functions min and max constexpr. They were top on the list of motivating cases for allowing reference parameters for constexpr functions in C++11. They were forgotten after the core language change was accepted.

N3854: Variable Templates For Type Traits -- Stephan T. Lavavej

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

Date: 2014-01-17

Variable Templates For Type Traits

by Stephan T. Lavavej

Excerpt:

This is a proposal to add variable templates like is_same_v<T, U> as less-verbose synonyms for type traits like is_same<T, U>::value.

N3853: Range-Based For-Loops: The Next Generation -- Stephan T. Lavavej

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

Date: 2014-01-17

Range-Based For-Loops: The Next Generation

by Stephan T. Lavavej

Excerpt:

This is a proposal to add the syntax "for (elem : range)". In addition to being easier for novices to learn and being clearer for everyone to read, this will encourage correctness and efficiency.

N3847: Random Number Generation is Not Simple! -- 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: N3847

Date: 2014-01-01

Random Number Generation is Not Simple!

by Walter E. Brown

Excerpt:

We discuss several approaches to the modern generation of random numbers using the facilities in the C++11 standard library header <random>, and solicit feedback from LEWG and LWG as to which, if any, are suitable candidates for future standardization efforts.

N3846: Extending static_assert -- 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: N3846

Date: 2014-01-01

Extending static_assert

by Walter E. Brown

Excerpt:

This paper provides proposed wording for several variants of an oft-requested feature: a default string literal for static_assert.

N3845: Greatest Common Divisor and Least Common Multiple -- 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: N3845

Date: 2014-01-01

Greatest Common Divisor and Least Common Multiple

by Walter E. Brown

Excerpt:

This paper proposes two frequently-used classical numeric algorithms, gcd and lcm, for header <cstdlib>. The former calculates the greatest common divisor of two integer values, while the latter calculates their least common multiple. Both functions are already typically provided in behind-the-scenes support of the standard library’s <ratio> and <chrono> headers.