• Categories

  • Archives

Text Processing with Boost

Speaker: Eric Niebler


Text Processing with Boost February 2007 meeting of the Northwest C++ Users Group. The abysmal support in the C and C++ standard libraries for string handling has driven many programmers to other languages like Perl and Python. Boost aims to reverse that trend. Libraries such as Boost.Lexical_cast, Boost.String_algo, Boost.Regex, Boost.Xpressive and Boost.Spirit are invaluable tools for slicing and dicing strings. If your task is as simple as turning an integer into a string, or as complicated as developing a parser generator for a new scripting language, Boost has a library that can help. In addition to covering all the afore mentioned libraries from a user’s perspective, we’ll also look at how Boost can be used to get more out of the standard IOstreams, and discover some hidden gems in Boost for dealing with Unicode.


No Time for JAVA

Performer: Herb Sutter
Performer: Bjarne Stroustrup

SD Best Practices Boston 2008

Concur and C++ Futures

Speaker: Herb Sutter


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

C++ Exception Handling Cost

Speaker: Kevin Frei


Kevin Frei – Exception Hanlding Cost September 2006 meeting of the Northwest C++ Users Group. Discussion of the assembly language cost of exception handling on the x86 Windows and x64 Windows platform.

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.

Red Code/Green Code – Generalizing Const

Speaker: Scott Meyers


C++ compilers allow non-const code to call const code, but going the other way requires a cast. In this talk, Scott describes an approach he’s been pursuing to generalize this notion to arbitrary criteria. For example, thread-safe code should only call other thread-safe code (unless you explicitly permit it on a per-call basis). Ditto for exception-safe code, code not “contaminated” by some open source license, or any other constraint you choose. The approach is based on template metaprogramming (TMP), and the implementation uses the Boost metaprogramming library (Boost.MPL), so constraint violations are, wherever possible, detected during compilation.