Concur and C++ Futures

Speaker: Herb Sutter


Discussions of concurrency & C++ futures September 2006 meeting of the Northwest C++ Users Group.


Getting C++ Threads Right

Speaker: Hans Boehm


The advent of multicore processors has generated profound debate on the merits of writing parallel programs with threads and locks. Nonetheless, for many application domains, this remains the standard paradigm for writing parallel programs, and at the moment, there is no apparent universal replacement. And it is the focus of this talk.

Somewhat surprisingly, there are a number of often subtle, but generally fixable, industry-wide problems with current approaches to threads programming. We’ll focus on probably the most widely used environments, consisting of C or C++ with a standard threads library. Problems span the spectrum from system libraries through language implementations through supporting hardware. They get in the way both in that they often make it difficult to write 100% reliable multi-threaded software, and in that they confuse even the basics of the programming model, thus making it hard to teach. A surprising number of "experts" do not understand the basic rules. Arguably, these problems really need to be addressed to even allow a meaningful comparison to other parallel programming approaches.

Since solutions to these problems generally require a coordinated industry effort, we helped to persuade the C++ standards committee to address them by pursuing a coherent approach to threads in the next C++ standard. The talk will outline some of the proposed solutions, and give an update on this effort.

Retrospective: The removal of C++0x Concepts

On Monday, July 13th 2009 Concepts were voted out of C++0x. In this post we take a look back at some of the the inevitable (and notable) articles from around the web.

The C++0x “Remove Concepts” Decision
Bjarne Stroustrup


At the July 2009 meeting in Frankfurt, Germany, the C++ Standards Committee voted to remove “concepts” from C++0x. Although this was a big disappointment for those of us who have worked on concepts for years and are aware of their potential, the removal fortunately will not directly affect most C++ programmers. C++0x will still be a significantly more expressive and effective language for real-world software development than C++98. The committee acted with the intent to limit risk and preserve schedule. Maybe a significantly improved version of “concepts” will be available in five years. This note explains the reasons for the removal of “concepts,” briefly outlines the controversy and fears that caused the committee to decide the way it did, gives references for people who would like to explore “concepts,” and points out that (despite enthusiastic rumors to the contrary) “the sky is not falling” on C++.

What Happened in Frankfurt?
Doug Gregor


By now the news has probably reached everyone interested in the evolution of C++0x: the ISO C++ committee voted to remove Concepts from the C++0x working draft at its July 2009 meeting in Frankfurt, Germany. Concepts were the flagship feature of C++0x, and their removal has been met with varying degrees of shock, disappointment and relief. In this post I’ll describe the effort to bring concepts into C++0x and the reasons that effort ultimately failed.

The Rise and Fall of C++0x Concepts
Danny Kalev


What were you doing during the morning hours (EST) of July 13th 2009? On that auspicious day, in a dramatic vote, the C++ standards committee decided to remove concepts from C++0x. Undoubtedly, this resolution will have a huge impact on C++. In this column I will outline the causes of concepts’ failure, discuss the lessons from this unprecedented event, and try to predict how it will affect the future of C++.

The Removal of Concepts From C++0x
Danny Kalev


On Monday, July 13th 2009 Concepts were dramatically voted out of C++0x during the C++ standards committee meeting in Frankfurt. This shocking news raises many questions and concerns. Unquestionably, these will be discussed in various forums in coming weeks and months. However, I will try to answer three burning questions here: What led to the failure of Concepts? How will the removal of Concepts affect C++0x? Will Concepts make a comeback in the near future?

Bjarne Stroustrup Expounds on Concepts and the Future of C++
Danny Kalev


A year ago, everyone was all but certain that the C++0x standard was just around the corner, and that it would include concepts (see Danny Kalev’s earlier interview with Bjarne Stroustrup, the creator of C++, from August 2008). However, In July 2009 the C++ standards committee decided to remove concepts from the C++0x by an unprecedented move. Danny’s recent controversial editorial was among the first to report that decision and its possible consequences. Despite vociferous disagreements over the removal of concepts themselves, nearly everyone agrees that the committee’s decision left open many questions not only about concepts, but also about the committee’s charter, and even the future of C++ itself. Therefore, Danny has interviewed Bjarne Stroustrup again, this time to capture his thoughts about concepts, their removal, and the impact of that decision, along with his take on other pressing questions that currently concern the entire C++ community.

Trip Report: Exit Concepts, Final ISO C++ Draft in ~18 Months
Herb Sutter


A week ago, I attended the summer ISO C++ meeting in Frankfurt, Germany. The C++ committee made a lot of progress on addressing national body comments on the full committee draft published last year, and is well on the way to publishing a second and final CD this winter with a final draft international standard a year after that. To meet that schedule, the committee decided to defer a major feature, “concepts”, and not include it in this standard.

C++0x Initialization Lists

Speaker: Bjarne Stroustrup


Getting initialization right is an important part of programming. Over the years, this has led to a mess of language facilities and techniques. This talk describes how C++0x (most likely) will address two issues: how to get a uniform syntax and semantics for all initialization and how to allow initialization by general lists. Obviously, people will want the solution to be really simple and completely compatible. As ever, the resolution is to be almost completely compatible and almost simple. This talk will describe sequence constructors, homogeneous and heterogeneous initializer lists, and (as far as time allows) fit generalized constant expressions, prevention of narrowing conversions, and variadic templates into this picture.

An Overview of the Coming C++ (C++0x) Standard

Speaker: Matt Austern
Speaker: Lawrence Crowl


The C++ language has started the formal approval process with the recent release of its Committee Draft, i.e. Beta.  This talk outlines the process, the new features, some features left out, and the procedures for formal comments.