In a nutshell: Rarely known C++ constructs (part 1), Function try blocks -- Tamás Szelei
Do you remember this C++ feature? It's especially (mostly) useful on constructors.
Rarely known C++ constructs (part 1): Function try blocks
by Tamás Szelei
By Blog Staff | Feb 21, 2014 10:23 AM | Tags: intermediate
Do you remember this C++ feature? It's especially (mostly) useful on constructors.
Rarely known C++ constructs (part 1): Function try blocks
by Tamás Szelei
By Blog Staff | Feb 21, 2014 09:14 AM | Tags: basics
As the community continues to absorb the new modern C++ features, we'd like to share this brief and accessible overview:
What you should know about C++11: Part 1, Part 2, Part 3
by Bartlomiej Filipek
By Blog Staff | Feb 20, 2014 11:20 AM | Tags: None
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: N3939
Date: 2014-02-17
Extending make_shared to Support Arrays, Revision 2
by Peter Dimov and Glen Fernandes
Excerpt:
This paper proposes adding array support to
make_shared
, via the syntaxmake_shared<T[]>
andmake_shared<T[N]>
.This revision of N3870 removes the scalar
T&&
overloads, reflecting the result of the LEWG review.
By Meeting C++ | Feb 20, 2014 06:57 AM | Tags: conference community
Finally I can announce the date and place for Meeting C++ 2014:
We will meet this year in Berlin at the Andels Hotel on the 5th and 6th December!
With the announcement also the call for papers has started, until April 20th you can send in your talks for the conference. This years theme track is "Scientific Programming with C++", I hope to have again a lot of diverse talks about C++ at the conference!
By Meeting C++ | Feb 20, 2014 06:54 AM | Tags: ranges intermediate experimental c++11 boost advanced
The second part of Eric Nieblers Series about ranges:
Range Concepts, Part 2 of 4: Infinite Ranges
By Eric Niebler
From the Article:
In the last post, I tried to make delimited ranges fit into the STL and found the result unsatisfying. This time around I’ll be trying the same thing with infinite ranges and will sadly be reaching the same conclusion. But the exercise will point the way toward an uber-Range concept that will subsume delimited ranges, infinite ranges, and STL-ish pair-o’-iterator ranges.
By H Sutter | Feb 17, 2014 04:31 PM | Tags: None
The winter 2014 WG21 (ISO C++) meeting was held in Issaquah, WA, USA on February 10-15. Many thanks to Microsoft for hosting us!
The major work of this meeting was to complete processing of the national body comments received in last summer’s comment ballot for the upcoming C++14 standard. We also began comment processing for the recent corresponding ballot for the File System Technical Specification (TS).
Below are some highlights from this week’s meeting.
Some history for perspective:
On Saturday, we unanimously approved what we believe will be the final text of the third C++ standard, which we expect to become C++14 later this year. This is a huge milestone for C++! And compiler vendors are already scrambling over each other to be the first to ship a fully conforming C++14 implementation -- possibly while the final C++14 ballot is still in progress, which has never happened before.
Note: The upcoming five-month DIS (Draft International Standard) ballot is expected to be the final ISO ballot for C++14. If there are any national objections to the DIS, then there will be one additional FDIS (Final Draft International Standard) ballot stage at the end of this year. However, the national bodies tell me that, barring last-minute surprises, they will likely agree on the DIS contents we just approved on Saturday; in that case the FDIS step will not be required and we would be able to proceed directly to publication later this summer.
For those interested, here are the main (albeit small) changes approved this week as the final set of tweaks for C++14:
shared_mutex
to shared_timed_mutex
"rand()
in C++14"I want to say a hearty THANK YOU AGAIN to everyone who has worked so hard, not only on completing C++14, but on bringing it in at such high quality. We had very clean CD ballot with a far lower number of change/bugfix requests than the C++0x/11 ballots, and it’s probably fair to say that today our C++ working paper is in better shape than ever.
Thank you again to everyone on the committee, those who participated via national bodies, and those who gave great feedback and help via the std-discussion and std-proposals groups, for making this possible! This is a really outstanding achievement.
But that’s not all, because we also made progress on other fronts as well...
In addition to completing (we hope) C++14, we also made progress on all seven of the TS projects, and approved the creation of one more. Here’s a quick overview of what we accomplished last week, and some notes about what to expect possibly at our next meeting this June in sunny Rapperswil, Switzerland.
The File System TS (GitHub) worked through most of its ballot comments and is expected to complete its ballot resolution in Rapperswil, where we expect to complete the TS and approve sending it out for its final DTS ballot.
The Networking TS material we have so far was approved to instead be added directly to the Library Fundamentals TS (see N3783 below).
The Library Fundamentals TS (GitHub) had a number of additions and is expected to be in shape for its PDTS ballot after Rapperswil. Here is a quick look at what was added to Fundamentals -- follow the links for the details of each paper:
optional
objects (Revision 5)"any
librarystd::common_type
(option 2 was approved)function_call_operator
.apply
normativeshared_ptr
to Support Arrays"string_view
librarystd::iterator_traits
"sample
proposal"
The Array TS working paper was approved, and though we didn’t vote anything more into it at this meeting, LEWG considered additional material that is in good shape to be expected to be added to the Array TS in Rapperswil, including multidimensional array_view
and indexes.
The Concepts, Parallelism, and Concurrency TSes had content approved to be turned into initial working papers. Between meetings, the project editors will work on producing formal working papers, which we will consider adopting as TS working papers at the beginning of our next meeting in Rapperswil. One or two of those might even be approved for PDTS ballot following Rapperswil! The initial TS contents are:
Finally, we decided to further expand our workload: We approved asking for a Transactional Memory TS New Work Item (New Project ballot) based on N3919, “Transactional Memory Support for C++.” In Rapperswil we hope to have a paper with wording that we can consider approving to turn into an initial working paper between Rapperswil (June) and Urbana-Champaign (November).
WG21 has now shipped out documents for ballot in the last three consecutive ISO C++ meetings, and the plan is for this to continue. We have been filling up our pipeline, and now we're seeing work come out the other end at a brisk pace.
After the long and "working relatively invisibly" period of C++0x, it's very interesting to see ISO C++ now in a mode where "shipping something out for ISO ballot" is becoming the normal outcome of every meeting. Thanks again to all the volunteers who make it possible! And stay tuned for more to come throughout this year...
By Meeting C++ | Feb 17, 2014 01:02 PM | Tags: ranges intermediate experimental efficiency advanced
The start on a series about ranges from Eric Niebler:
Range Concepts, Part 1 of 4: Delimited Ranges
By Eric Niebler
From the Article:
I’ve been digging into ranges recently, and I’m finding them to be more than just a pair of iterators. In a series of posts, I’ll be expanding the notion of what a range is to cover some kinds of ranges not easily or efficiently expressible within the STL today: delimited ranges and infinite ranges. This post deals with the problems of representing delimited ranges with STL iterators.
By Blog Staff | Feb 17, 2014 12:05 PM | Tags: None
Note: This paper was approved on Saturday at the Issaquah WA USA ISO C++ meeting as an indication of content for a new Transactional Memory Technical Specification.
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: N3919
Date: 2014-02-14
Transactional Memory Support for C++
by Victor Luchango, Michael Wong, 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 selfcontained, 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.
This proposal is based in part on the Draft Specification for Transactional Constructs in C++ (Version 1.1) published by the Transactional Memory Specification Drafting Group in February 2012. It represents a pragmatic basic set of features, and omits or simplifies a number of controversial or complicated features from the Draft Specification. Our goal has been to focus SG5’s efforts towards a basic set of features that is useful and can support progress towards possible inclusion in the C++ standard.
In addition to a description of the proposal, this document contains a summary of some of feedback we received at the Chicago meeting and of the discussion within SG5 since that meeting. Unlike N3718, it does not include examples or precise wording changes, as we have not yet revised them to reflect the changes in the proposal since N3718. However, these changes, summarized in Section 2.1, are mostly superficial.
By Blog Staff | Feb 17, 2014 11:54 AM | Tags: None
Note: This paper was approved on Saturday at the Issaquah WA USA ISO C++ meeting to be turned into a Concepts Technical Specification working draft for expected adoption at our next meeting (June in Rapperswil, Switzerland).
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: N3929
Date: 2014-02-14
Technical Specification: Concepts
by Andrew Sutton
Excerpt:
C++ has long provided language support for generic programming in the form of templates. However, these templates are unconstrained, allowing any type or value to be substituted for a template argument, often resulting in compiler errors. What is lacking is a specification of an interface for a template, separate from its implementation, so that a use of a template can be selected among alternative templates and checked in isolation.
By Blog Staff | Feb 16, 2014 05:11 PM | Tags: None
Note: This paper was among the papers adopted into the draft Library Fundamentals TS yesterday at the Issaquah WA USA ISO C++ meeting.
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: N3932
Date: 2014-02-14
Variable Templates For Type Traits (Revision 1)
by Stephan T. Lavavej
Excerpt:
This updates N3854 [1] in response to the resolution for LWG 2112 [2], adding
is_final_v
...