March 2014

N3909: A SFINAE-Friendly std::iterator_traits, v2 -- Walter 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: N3909

Date: 2014-02-10

A SFINAE-Friendly std::iterator_traits, v2

by Walter Brown

Excerpt:

This paper proposes to reformulate the specification of iterator_traits so as to avoid a hard error when its template argument does not have the member types and other characteristics expected of a non-pointer iterator, and thus to make the trait conveniently usable in a SFINAE context.

...

6 Acknowledgments

Many thanks to the readers of early drafts of this paper for their thoughtful comments. Special thanks to Howard Hinnant for his suggestion to validate the nested iterator_category.

N3957-59, Evolution Issues Lists -- 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 numbers: N3957-59

Date: 2014-02-28

C++ Standard Evolution Active Issues List (Revision R06)

C++ Standard Evolution Completed Issues List (Revision R06)

C++ Standard Evolution Closed Issues List (Revision R06)

by Ville Voutilainen

Excerpt:

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

N3912: Auto and braced-init-lists, continued -- 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: N3912

Date: 2014-02-24

Auto and braced-init-lists, continued

by Ville Voutilainen

Excerpt:

It was reported (with emphasis) by Mikael Kilpeläinen that init-captures deduce types the same way as auto does. This means that direct-initialization using braces in an init-capture will create an initializer_list. The EWG found this harmful, and is proposing a compromise change that differs from N3681 in the sense that direct-initialization using braces would not yield initializer_lists, whereas copy-initialization using braces would. Example: ...

N3947: URI - Proposed Wording (Revision 4) -- 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: N3947

Date: 2014-02-28

URI - Proposed Wording (Revision 4)

by Glyn Matthews, Dean Michael Berris

Excerpt:

Revisions to N3827

  1. Reverted normalization invariant and added the normalize member function and uri_normalization_level again.
  2. Added functions for interoperability with std::filesystem::path.
  3. Replaced multiple exception classes with a single exception class, uri_error. The uri_error enum has become uri_error_code.
  4. Updated make_relative and resolve sections.
  5. Removed references to IETF RFC 2732, which, it was pointed out, is superseded by IETF RFC 3986.

Acknowledgements

C++ Network Library users and mailing list

Kyle Kloepper and Niklas Gustafsson for providing valuable feedback and encouragement, and for presenting different versions of this proposal at committee meetings.

Beman Dawes and his Filesystem proposal from which I was influenced strongly in the class design.

Thiago Macieira of Qt for important feedback on the draft proposal.

David Thaler for suggesting corrections to errors in referencing IETF standards.

Wikipedia, for being there.

N3961: A proposal to add shared_mutex (untimed) -- Gor Nishanov

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

Date: 2014-02-25

N3961: A proposal to add shared_mutex (untimed)

by Gor Nishanov

Excerpt:

At the Issaquah ISO C++ meeting of 2014 shared_mutex was renamed to shared_timed_mutex per proposal N3891 to follow the naming precedent set by timed_mutex and recursive_timed_mutex and to leave room for an untimed shared_mutex which can be more efficient on some platforms than shared_timed_mutex.

This paper introduces shared_mutex without timed locking requirement. This paper only includes the proposed wording. For background for shared locking please refer to N3568, N3659 and N3891.

N3949: Scoped Resource - Generic RAII Wrapper for the Standard Library -- P Sommerlad, A L Sandoval

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

Date: 2014-02-28

Scoped Resource - Generic RAII Wrapper for the Standard Library

by Peter Sommerlad and Andrew L. Sandoval

Excerpt:

This proposal introduces a new RAII "smart" resource container called unique_resource_t which can bind a resource to "clean-up" code regardless of type of the argument required by the "clean-up" function.

...

4 Acknowledgements

  • This proposal incorporates what Andrej Alexandrescu described as scope guard long ago and explained again at C++ Now 2012 ().
  • This proposal would not have been possible without the impressive work of Peter Sommerlad who produced the sample implementation during the Fall 2013 committee meetings in Chicago. Peter took what Andrew Sandoval produced for N3677 and demonstrated the possibility of using C++14 features to make a single, general purpose RAII wrapper capable of ful lling all of the needs presented by the original 4 classes (from N3677) with none of the compromises.
  • Gratitude is also owed to members of the LEWG participating in the February 2014 (Issaquah) and Fall 2013 (Chicago) meeting for their support, encouragement, and suggestions that have led to this proposal.
  • Special thanks and recognition goes to OpenSpan, Inc. (http://www.openspan.com) for supporting the production of this proposal, and for sponsoring Andrew L. Sandoval's rst proposal (N3677) and the trip to Chicago for the Fall 2013 LEWG meeting. Note: this version abandons the over-generic version from N3830 and comes back to two classes with one or no resource to be managed.
  • Thanks also to members of the mailing lists who gave feedback. Especially Zhihao Yuan, and Ville Voutilainen.  Special thanks to Daniel Krügler for his deliberate review of the draft version of this paper (D3949).

 

C++ and the Google Summer of Code

I wrote an overview over this years Google Summer of Code and C++

C++ and the Google Summer of Code

by Jens Weller

From the Article:

During the last few weeks I got interested in the Google Summer of Code (GSoC), as I did read some emails on the boost mailing lists about it. The Google Summer of Code is for a lot of open source projects an important opportunity to improve and extend their code base, and in 2014 it happens for the 10th time!