experimental

New paper: N3702 Introducing an optional parameter for mem_fn -- Mikhail Semenov

Note: This paper explores potential future standardization directions and alternatives. It does not discuss or propose to amend the C++14 Committee Draft paper whose ballot is currently in progress.

 

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

Date: 2013-06-28

Introducing an optional parameter for mem_fn, which allows to bind an object to its member function

by Mikhail Semenov

Excerpt:

When a member function is used as a parameter to another function (the latter is usually called a functional) it is often necessary to provide the corresponding class object as a parameter as well. But functionals, like for example an integral, are often written to accept one global function. In cases when a member function and an object are needed, it is necessary to bind them together,  so that the result can be supplied to the corresponding functional as one parameter. ...

... The proposal is to allow mem_fn to accept a second, optional parameter.

New paper: N3701, Concepts Lite (2nd revision) -- A. Sutton, B. Stroustrup, G. Dos Reis

Note: This paper explores potential future standardization directions and alternatives. It does not discuss or propose to amend the C++14 Committee Draft paper whose ballot is currently in progress.

 

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

Date: 2013-06-28

Concepts Lite (2nd revision)

by A. Sutton, B. Stroustrup, G. Dos Reis

Excerpt:

This paper is in its 2nd revision. There have been a number of substantial
changes, which are summarize here.

  • The syntax of constrained member functions has changed.
  • The syntax of the requires expression has changed.
  • We have introduced syntax for constraining generic lambdas, and using constraints wherever auto is used.
  • We allow the use of overload sets as arguments to constrained functions.
  • The standard wording has been more extensively developed, but does not yet include language for constrained generic lambdas.

This paper is organized like this:

  • Tutorial: introduces the new features specified by Concepts Lite, their core concepts and examples.
  • User’s guide: provides a more extensive discussion of the proposed features and demonstrates the completeness of the constraints mechanism. We also include some high-level discussion of the language mechanics.
  • Discussion: explains what constrains are not. In particular, we try to outline constraint’s relation to concepts and to dispel some common misconceptions about concepts.
  • Design Notes: Notes on the design of terse notation for templates and generic lambdas.
  • Language definition: presents a semi-formal definition of constraints

New paper: N3700, Hierarchical Data Structures and Related Concepts -- B. Reiter, R. Rivera

Note: This paper explores potential future standardization directions and alternatives. It does not discuss or propose to amend the C++14 Committee Draft paper whose ballot is currently in progress.

 

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

Date: 2013-06-22

Hierarchical Data Structures and Related Concepts for the C++ Standard Library

by B. Reiter, R. Rivera

Excerpt:

This paper proposes the addition of library components covering tree structures and related concepts to Programming Languages -- C++. The proposal is based on work towards a Boost Tree component library.

The library strives to cover many of the relevant aspects within the vast field linked to the notion of trees in computer science.

New paper: N3699, A proposal to add a generalized callable negator -- Tomasz KamiƄski

Note: This paper explores potential future standardization directions and alternatives. It does not discuss or propose to amend the C++14 Committee Draft paper whose ballot is currently in progress.

 

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

Date: 2013-05-27

A proposal to add a generalized callable negator

by Tomasz Kamiński

Excerpt:

The standard negators not1 and not2 accept only unary and binary functors that define argument_type or first_argument_type and second_argument_type respectively, which make them unusable with results of standard library functions such as bind and mem_fn. Furthermore, with relation to N3421, they cannot be used with new operator functor specializations.

This proposal addresses the problem by introducing a template function not_fn that returns complement of arbitrary predicate.

New paper: N3694, Feature-testing recommendations for C++ -- Clark Nelson

Note: This paper explores potential future standardization directions and alternatives. It does not discuss or propose to amend the C++14 Committee Draft paper whose ballot is currently in progress.

 

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

Date: 2013-06-27

Feature-testing recommendations for C++

by Clark Nelson

Excerpt:

For the sake of improved portability between partial implementations of various C++ standards, WG21 (the ISO technical committee for the C++ programming language) recommends that implementers and programmers follow the guidelines in this document concerning feature-test macros.

New paper: N3693, Working Draft, Technical Specification -- File System -- Beman Dawes

Note: This paper explores potential future standardization directions and alternatives. It does not discuss or propose to amend the C++14 Committee Draft paper whose ballot is currently in progress.

 

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

Date: 2013-06-28

Working Draft, Technical Specification -- File System

by Beman Dawes

Excerpt:

This Technical Specification specifies requirements for implementations of an interface that computer programs written in the C++ programming language may use to perform operations on file systems and their components, such as paths, regular files, and directories.

New paper: N3695, SG5: Transactional Memory Meeting Minutes 2013/03/11-2013/06/10 -- Michael Wong

Note: This paper explores potential future standardization directions and alternatives. It does not discuss or propose to amend the C++14 Committee Draft paper whose ballot is currently in progress.

 

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

Date: 2013-06-28

SG5: Transactional Memory (TM) Meeting Minutes 2013/03/11-2013/06/10

by Michael Wong

Excerpt:

Contents

Minutes for 2013/03/11 SG5 Conference Call ... 2

Minutes for 2013/04/08 SG5 Conference Call ... 10

Minutes for 2013/04/29 SG5 Conference Call ... 14

Minutes for 2013/05/13 SG5 Conference Call ... 23

Minutes for 2013/06/03 SG5 Conference Call ... 25

Minutes for 2013/06/10 SG5 Conference Call ... 30

New paper: N3696, Proposal to extend atomic with priority update functions -- Bronek Kozicki

Note: This paper explores potential future standardization directions and alternatives. It does not discuss or propose to amend the C++14 Committee Draft paper whose ballot is currently in progress.

 

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

Date: 2013-06-26

Proposal to extend atomic with priority update functions

by Bronek Kozicki

Excerpt:

Paper [1] identifies a range of concurrent algorithms which, when implemented using the above described primitive, exhibit very good performance characteristics. If such algorithms were to become more popular in C++ , it would be useful to provide the primitive in <atomic>, rather than rely on the user to "Bring Your Own". This would serve the purpose of establishing a primitive which can be used for reasoning about, writing and reading of such concurrent algorithms, as well as allow users to automatically benefit from the hardware support for certain specializations of these operations, where it is available [2].

Quick Q: So what's "lite" about "concepts lite" vs. full concepts?

There's a Q&A on StackOverflow, but see also the discussion about this in the March 12 Concepts conference call minutes that were posted here on the same day as the call. It's really more than minutes, it's also a record of discussion that answers this and other questions.

From SO:

What are the differences between concepts and template constraints?

I want to know what are the semantic differences between the C++ full concepts proposal and template constraints (for instance, constraints as appeared in Dlang or the new concepts-lite proposal for C++1y).

What are full-fledged concepts capable of doing than template constraints cannot do?