Blogs

RSS

An aggregation of our Blog Roll, made up of acmqueue authors.   more

All Postings, Herb Sutter:  (603 posts)

Source blog: Sutter's Mill

Thu, 04 Apr 2024 00:55:09 UTC

Pre-ACCU interview video is live

Posted By Herb Sutter

On Friday, I sat down with Kevin Carpenter to do a short (12-min) interview about my ACCU talk coming up on April 17, and other topics. Apologies in advance for my voice quality: I’ve been sick with some bug since just after the Tokyo ISO meeting, and right after this interview I lost my voice … Continue reading Pre-ACCU interview video is live →

Tue, 26 Mar 2024 06:35:00 UTC

Effective Concurrency course & upcoming talks

Posted By Herb Sutter

With the winter ISO meeting behind us, it’s onward into spring conference season! ACCU Conference 2024. On April 17, I’ll be giving a talk on C++’s current and future evolution, where I plan to talk about safety based on my recent essay C++ safety, in context,” and progress updates on cppfront. I’m also looking forward … Continue reading Effective Concurrency course & upcoming talks →

Sat, 23 Mar 2024 01:15:46 UTC

Trip report: Winter ISO C++ standards meeting (Tokyo, Japan)

Posted By Herb Sutter

Moments ago, the ISO C++ committee completed the closing Saturday plenary session of its third meeting of C++26, held in Tokyo, Japan. No typo: It is now Saturday morning, Tokyo time. Many of you may see this on Friday in your time zone, and this blog post will likely be datestamped Friday. Thank you to … Continue reading Trip report: Winter ISO C++ standards meeting (Tokyo, Japan) →

Tue, 12 Mar 2024 06:01:13 UTC

C++ safety, in context

Posted By Herb Sutter

Scope. To talk about C++?s current safety problems and solutions well, I need to include the context of the broad landscape of security and safety threats facing all software. I chair the ISO C++ standards committee and I work for Microsoft, but these are my personal opinions and I hope they will invite more dialog … Continue reading C++ safety, in context →

Mon, 12 Feb 2024 15:04:48 UTC

Effective Concurrency: Live online course in April

Posted By Herb Sutter

I generally give one or two courses a year on C++ and related technologies. This year, on April 22-25, I’ll be giving a live online public course for four half-days, on the topic of high-performance low-latency coding in C++?? and the early registration discount is available for a few more days until this Thursday: Effective … Continue reading Effective Concurrency: Live online course in April →

Sun, 12 Nov 2023 00:40:25 UTC

Trip report: Autumn ISO C++ standards meeting (Kona, HI, USA)

Posted By Herb Sutter

Today, the ISO C++ committee completed its second meeting of C++26, held in Kona, HI, USA. Our hosts, Standard C++ Foundation and WorldQuant, arranged for high-quality facilities for our six-day meeting from Monday through Saturday. We had over 170 attendees, about two-thirds in-person and the others remote via Zoom, formally representing 21 nations. Also, at … Continue reading Trip report: Autumn ISO C++ standards meeting (Kona, HI, USA) →

Mon, 09 Oct 2023 17:09:57 UTC

My new CppCon talk is on YouTube: ?Cooperative C++ Evolution ? Toward a TypeScript for C++?

Posted By Herb Sutter

My Thursday CppCon talk is now online. Note: There’s already a Reddit thread for it, so if you want to comment on the video I suggest you use that thread instead of creating a new one. At CppCon 2022, I argued for why we should try to make C++ 10x simpler and 50x safer, and this … Continue reading My new CppCon talk is on YouTube: “Cooperative C++ Evolution – Toward a TypeScript for C++” →

Thu, 28 Sep 2023 15:40:06 UTC

cppfront: Autumn update

Posted By Herb Sutter

Since the 2022-12-31 year-end mini-update and the 2023-04-30 spring update, progress has continued on cppfront. (If you don?t know what this personal project is, please see the CppCon 2022 talk on YouTube for an overview, and the CppNow 2023 talk on YouTube for an interim update.) I’ll be giving a major update next week at CppCon. I hope … Continue reading cppfront: Autumn update →

Mon, 14 Aug 2023 06:26:55 UTC

My C++ Now 2023 talk is online: ?A TypeScript for C++?

Posted By Herb Sutter

Thanks again to C++ Now for inviting me to speak this year in glorious Aspen, Colorado, USA! It was nice to see many old friends again there and make a few new ones too. The talk I gave there was just posted on YouTube, you can find it here: At CppCon 2022, I argued for … Continue reading My C++ Now 2023 talk is online: “A TypeScript for C++” →

Sat, 17 Jun 2023 07:17:41 UTC

Trip report: Summer ISO C++ standards meeting (Varna, Bulgaria)

Posted By Herb Sutter

Minutes ago, the ISO C++ committee finished its meeting in-person in Varna, Bulgaria and online via Zoom, where we formally began adopting features into C++26. Our hosts, VMware and Chaos, arranged for high-quality facilities for our six-day meeting from Monday through Saturday. We had nearly 180 attendees, about two-thirds in-person and the others remote via … Continue reading Trip report: Summer ISO C++ standards meeting (Varna, Bulgaria) →

Mon, 01 May 2023 07:50:00 UTC

cppfront: Spring update

Posted By Herb Sutter

Since the year-end mini-update, progress has continued on cppfront. (If you don?t know what this personal project is, please see the CppCon 2022 talk on YouTube.) This update covers Acknowledgments, and highlights of what’s new in the compiler and language since last time, including: Acknowledgments: 267 issues, 128 pull requests, and new collaborators I want to … Continue reading cppfront: Spring update →

Tue, 04 Apr 2023 03:22:31 UTC

Interview on CppCast

Posted By Herb Sutter

A few days ago I recorded CppCast episode 357. Thanks to Timur Doumler and Phil Nash for inviting me on their show ? and for continuing CppCast, which was so wonderfully founded by Rob Irving and Jason Turner! This time, we chatted about news in the C++ world, and then about my Cpp2 and cppfront … Continue reading Interview on CppCast →

Mon, 13 Feb 2023 22:30:56 UTC

C++23 ?Pandemic Edition? is complete (Trip report: Winter ISO C++ standards meeting, Issaquah, WA, USA)

Posted By Herb Sutter

On Saturday, the ISO C++ committee completed technical work on C++23 in Issaquah, WA, USA! We resolved the remaining international comments on the C++23 draft, and are now producing the final document to be sent out for its international approval ballot (Draft International Standard, or DIS) and final editorial work, to be published later in … Continue reading C++23 ?Pandemic Edition? is complete (Trip report: Winter ISO C++ standards meeting, Issaquah, WA, USA) →

Sat, 31 Dec 2022 21:56:26 UTC

Cpp2 and cppfront: Year-end mini-update

Posted By Herb Sutter

As we close out 2022, I thought I’d write a short update on what’s been happening in Cpp2 and cppfront. If you don’t know what this personal project is, please see the CppCon 2022 talk on YouTube. Most of this post is about improvements I’ve been making and merging over the year-end holidays, and an … Continue reading Cpp2 and cppfront: Year-end mini-update →

Sat, 12 Nov 2022 19:54:00 UTC

Trip report: Autumn ISO C++ standards meeting (Kona)

Posted By Herb Sutter

A few minutes ago, the ISO C++ committee completed its second-to-last meeting of C++23 in Kona, HI, USA. Our host, the Standard C++ Foundation, arranged for high-quality facilities for our six-day meeting from Monday through Saturday. We currently have 26 active subgroups, nine of which met in six parallel tracks throughout the week; some groups … Continue reading Trip report: Autumn ISO C++ standards meeting (Kona) →

Tue, 11 Oct 2022 04:31:10 UTC

Weekend update: Operator and parsing design notes

Posted By Herb Sutter

Thanks again for all the bug reports and feedback for Cpp2 and cppfront! As I mentioned last weekend, I?ve started a wiki with ?Design notes? about specific aspects of the design to answer why I?ve made them they way they currently are? basic rationale, alternatives considered, in a nutshell, as quick answers to common questions I encounter repeatedly. … Continue reading Weekend update: Operator and parsing design notes →

Wed, 05 Oct 2022 01:58:12 UTC

Cpp2 design notes: UFCS, ?const?, ?unsafe?, and (yes) ABI

Posted By Herb Sutter

Thanks to everyone who has offered bug reports and constructive suggestions for Cpp2 and cppfront. To answer common questions I encounter repeatedly, I’ve started a wiki with “Design notes” about specific aspects of the design to answer why I’ve made them they way they currently are… basic rationale, alternatives considered, in a nutshell. There are … Continue reading Cpp2 design notes: UFCS, “const”, “unsafe”, and (yes) ABI →

Sun, 25 Sep 2022 15:50:29 UTC

Something I implemented today: ?is void?

Posted By Herb Sutter

[Edited to add pre-publication link to next draft of P2392, revision 2] Brief background As I presented at CppCon 2021 starting at 11:15, I’m proposing is (a general type or value query) and as (a general cast, for only the safe casts) for C++ evolution. The talk, and the ISO C++ evolution paper P2392 it’s … Continue reading Something I implemented today: “is void” →

Mon, 19 Sep 2022 18:21:57 UTC

My CppCon 2022 talk is online: ?Can C++ be 10x simpler & safer ? ??

Posted By Herb Sutter

It was great to see many of you at CppCon, in person and online! It was a really fun conference this year, and the exhibitor hall felt crowded again which was a good feeling as we all start traveling more again. The talk I gave on Friday is now on YouTube. In it I describe … Continue reading My CppCon 2022 talk is online: “Can C++ be 10x simpler & safer … ?” →

Sun, 31 Oct 2021 22:34:07 UTC

My CppCon 2021 talk video is online

Posted By Herb Sutter

Whew — I’m now back from CppCon, after remembering how to travel. My talk video is now online. If you haven’t already seen this via JetBrains’ CppCon 2021 video page or the Reddit post, here’s a link: Please direct technical comments to the Reddit thread and I’ll watch for them there and respond to as … Continue reading My CppCon 2021 talk video is online →

Wed, 09 Jun 2021 21:12:10 UTC

Trip report: Summer 2021 ISO C++ standards meeting (virtual)

Posted By Herb Sutter

On Monday, the ISO C++ committee held its third full-committee (plenary) meeting of the pandemic and adopted a few more features and improvements for draft C++23. We had representatives from 17 voting nations at this meeting: Austria, Bulgaria, Canada, Czech Republic, Finland, France, Germany, Israel, Italy, Netherlands, Poland, Russia, Slovakia, Spain, Switzerland, United Kingdom, and … Continue reading Trip report: Summer 2021 ISO C++ standards meeting (virtual) →

Thu, 03 Jun 2021 16:44:38 UTC

GotW #102 Solution: Assertions and ?UB? (Difficulty: 7/10)

Posted By Herb Sutter

This special Guru of the Week series focuses on contracts. Now that we have considered assertions, postconditions, and preconditions in GotWs #97-101, let?s pause and reflect: To what extent does a failed contract imply ?UB?? either the Hidden Dragon of Undefined Behavior, or the Crouching Tiger of Unspecified Behavior? 1. Briefly, what is the difference … Continue reading GotW #102 Solution: Assertions and ?UB? (Difficulty: 7/10) →

Tue, 25 May 2021 17:29:25 UTC

GotW #102: Assertions and ?UB? (Difficulty: 7/10)

Posted By Herb Sutter

This special Guru of the Week series focuses on contracts. Now that we have considered assertions, postconditions, and preconditions in GotWs #97-101, let?s pause and reflect: To what extent does a failed contract imply ?UB?? either the Hidden Dragon of Undefined Behavior, or the Crouching Tiger of Unspecified Behavior? JG Question 1. Briefly, what is … Continue reading GotW #102: Assertions and ?UB? (Difficulty: 7/10) →

Thu, 25 Mar 2021 16:52:39 UTC

GotW #101 Solution: Preconditions, Part 2 (Difficulty: 7/10)

Posted By Herb Sutter

This special Guru of the Week series focuses on contracts. We covered some basics of preconditions in GotW #100. This time, let?s see how we can use preconditions in some practical examples? 1. Consider these functions, expanded from an article by Andrzej Krzemie?ski: [1] ? How many ways could a caller of each function get … Continue reading GotW #101 Solution: Preconditions, Part 2 (Difficulty: 7/10) →

Tue, 09 Mar 2021 00:08:17 UTC

GotW #101: Preconditions, Part 2 (Difficulty: 7/10)

Posted By Herb Sutter

This special Guru of the Week series focuses on contracts. We covered some basics of preconditions in GotW #100. This time, let?s see how we can use preconditions in some practical examples? JG Question 1. Consider these functions, expanded from an article by Andrzej Krzemie?ski: [1] How many ways could a caller of each function … Continue reading GotW #101: Preconditions, Part 2 (Difficulty: 7/10) →

Thu, 25 Feb 2021 22:24:25 UTC

GotW #100 Solution: Preconditions, Part 1 (Difficulty: 8/10)

Posted By Herb Sutter

This special Guru of the Week series focuses on contracts. We?ve seen how postconditions are directly related to assertions (see GotWs #97 and #99). So are preconditions, but that in one important way makes them fundamentally different. What is that? And why would having language support benefit us even more for writing preconditions more than … Continue reading GotW #100 Solution: Preconditions, Part 1 (Difficulty: 8/10) →

Mon, 22 Feb 2021 21:05:24 UTC

Trip report: Winter 2021 ISO C++ standards meeting (virtual)

Posted By Herb Sutter

Today, the ISO C++ committee held its second full-committee (plenary) meeting of the pandemic and adopted a few more features and improvements for draft C++23. A record of 18 voting nations sent representatives to this meeting: Austria, Bulgaria, Canada, Czech Republic, Finland, France, Germany, Israel, Italy, Japan, Netherlands, Poland, Romania, Russia, Spain, Switzerland, United Kingdom, … Continue reading Trip report: Winter 2021 ISO C++ standards meeting (virtual) →

Wed, 10 Feb 2021 20:25:43 UTC

GotW #100: Preconditions, Part 1 (Difficulty: 8/10)

Posted By Herb Sutter

This special Guru of the Week series focuses on contracts. We?ve seen how postconditions are directly related to assertions (see GotWs #97 and #99). So are preconditions, but that in one important way makes them fundamentally different. What is that? And why would having language support benefit us even more for writing preconditions more than … Continue reading GotW #100: Preconditions, Part 1 (Difficulty: 8/10) →

Mon, 08 Feb 2021 09:25:00 UTC

GotW #99 Solution: Postconditions (Difficulty: 7/10)

Posted By Herb Sutter

This special Guru of the Week series focuses on contracts. Postconditions are directly related to assertions (see GotW #97)? but how, exactly? And since we can already write postconditions using assertions, why would having language support benefit us more for writing postconditions more than for writing (ordinary) assertions? 1. What is a postcondition, and how … Continue reading GotW #99 Solution: Postconditions (Difficulty: 7/10) →

Wed, 27 Jan 2021 17:39:02 UTC

GotW #99: Postconditions (Difficulty: 7/10)

Posted By Herb Sutter

This special Guru of the Week series focuses on contracts. Postconditions are directly related to assertions (see GotW #97)? but how, exactly? And since we can already write postconditions using assertions, why would having language support benefit us more for writing postconditions more than for writing (ordinary) assertions? JG Question 1. What is a postcondition, … Continue reading GotW #99: Postconditions (Difficulty: 7/10) →

Mon, 25 Jan 2021 20:44:11 UTC

GotW #98 Solution: Assertion levels (Difficulty: 5/10)

Posted By Herb Sutter

This special Guru of the Week series focuses on contracts. We covered basic assertions in GotW #97? but not all asserted conditions are created equal. Given some assertion facility that can be used like this: 1. Give one example each of an asserted condition whose run-time evaluation is: a) super cheap It?s hard to find … Continue reading GotW #98 Solution: Assertion levels (Difficulty: 5/10) →

Thu, 21 Jan 2021 17:42:51 UTC

GotW #98: Assertion levels (Difficulty: 5/10)

Posted By Herb Sutter

This special Guru of the Week series focuses on contracts. We covered basic assertions in GotW #97? but not all asserted conditions are created equal. JG Questions Given some assertion syntax: 1. Give one example each of an asserted condition whose run-time evaluation is: a) super cheap b) arbitrarily expensive Guru Questions 2. What does … Continue reading GotW #98: Assertion levels (Difficulty: 5/10) →

Mon, 11 Jan 2021 19:45:38 UTC

GotW #97 Solution: Assertions (Difficulty: 4/10)

Posted By Herb Sutter

Assertions have been a foundational tool for writing understandable computer code since we could write computer code? far older than C?s assert() macro, they go back to at least John von Neumann and Herman Goldstine (1947) and Alan Turing (1949). [1,2] How well do we understand them? exactly? 1. What is an assertion, and what … Continue reading GotW #97 Solution: Assertions (Difficulty: 4/10) →

Sat, 02 Jan 2021 00:34:52 UTC

GotW #97: Contracts, part 1 ? Assertions and postconditions

Posted By Herb Sutter

As WG21 continues work on contracts, I thought I?d join other WG21ers like Andrzej Krzemie?ski who are writing ?explainer? blog posts about various considerations related to contracts, and to draw attention to the existing work and papers like P0542. Assertions have been a foundational tool for writing understandable computer code since we could write computer … Continue reading GotW #97: Contracts, part 1 ? Assertions and postconditions →

Wed, 30 Dec 2020 22:28:44 UTC

Firsts in 2020 (or, A little dose of good news)

Posted By Herb Sutter

2020 has been mostly terrible. That includes for the C++ committee and many of our communities, where just this month we lost Beman Dawes. Beman was one of the most important and influential C++ experts in the world, and made his many contributions mostly behind the scenes. I and everyone else who has ever benefited … Continue reading Firsts in 2020 (or, A little dose of good news) →

Mon, 23 Nov 2020 21:44:31 UTC

Video: AMA @ C++ Russia

Posted By Herb Sutter

Back in early July, I did a wide-ranging “ask me anything” Q&A session at C++ Russia. The video is now available — I hope you enjoy it. Thanks again to C++ Russia for inviting me to their great online event!

Sat, 14 Nov 2020 01:20:57 UTC

Trip report: Autumn ISO C++ standards meeting (virtual)

Posted By Herb Sutter

On Monday, the ISO C++ committee completed its final full-committee (plenary) meeting of 2020 and adopted the first changes to the C++23 working draft, including a few new features. This was a first in several ways: It was our first-ever virtual plenary, held online via Zoom. It was also our first-ever plenary meeting that wasn?t … Continue reading Trip report: Autumn ISO C++ standards meeting (virtual) →

Mon, 26 Oct 2020 20:32:28 UTC

My CppCon 2020 talk video is online

Posted By Herb Sutter

This video actually posted about two weeks ago, but… busy! Sorry. Here it is, I hope you enjoy it. Note that as of this writing the Clang-based prototype implementation on Godbolt is not yet complete, in particular it still needs to implement out and forward parameters.

Fri, 11 Sep 2020 19:21:44 UTC

My plans at CppCon

Posted By Herb Sutter

It’s hard to believe CppCon 2020 is nearly here… in fact, pre-conference tutorials are already in progress. I’ll be at the conference throughout the week in the hallways and session rooms. Here are some of the times I’ll be participating on the actual program: Sunday 1300 MDT: Organizer’s Panel. In the middle of the Welcome … Continue reading My plans at CppCon →

Sun, 06 Sep 2020 22:44:45 UTC

C++20 approved, C++23 meetings and schedule update

Posted By Herb Sutter

A couple of interesting things happened in the ISO C++ world this week… C++20 passed unanimously, on track to publish later this year On Friday September 4, C++20’s DIS (Draft International Standard) ballot ended, and it passed unanimously. This means that C++20 has now received final technical approval and is done with ISO balloting, and … Continue reading C++20 approved, C++23 meetings and schedule update →

Fri, 31 Jul 2020 00:33:26 UTC

C++ on Sea video posted: Bridge to NewThingia (extended)

Posted By Herb Sutter

Two weeks ago, I had the privilege of speaking at the C++ on Sea 2020 virtual conference. The video of my talk has now been posted — it’s an extended version of the talk I gave at DevAroundTheSun in April. You can find it here: Thanks very much to Phil Nash and all the other … Continue reading C++ on Sea video posted: Bridge to NewThingia (extended) →

Mon, 22 Jun 2020 16:01:13 UTC

AMA @cpp_russia on July 2

Posted By Herb Sutter

C++ Russia is an online event this year, and I’m happy to be one of many C++ folks to be invited to participate. On July 2 I’ll be doing a Q&A session, which is the first time I’m doing an “AMA” — no talk, just Q&A and discussion. I’m looking forward to it, and to … Continue reading AMA @cpp_russia on July 2 →

Sun, 14 Jun 2020 15:23:49 UTC

Talk video available: Bridge to NewThingia @DevAroundTheSun

Posted By Herb Sutter

Last month, I gave a new talk “Bridge to NewThingia” at DevAroundTheSun. Using examples from the evolution of programming languages and a few other tech products, it analyzes some key design factors that let you confidently answer the question, “why will your NewThing succeed, when a lot of things that look like it have failed … Continue reading Talk video available: Bridge to NewThingia @DevAroundTheSun →

Wed, 20 May 2020 18:56:10 UTC

The New York ISO C++ meeting is postponed

Posted By Herb Sutter

A few minutes ago, I announced to the ISO C++ committee that all our meetings originally planned for 2020 have been postponed. We had already postponed the Varna meeting originally planned for June 1-6, and earlier today INCITS (the U.S. national body) announced that it was banning all face-to-face standards meetings for the rest of … Continue reading The New York ISO C++ meeting is postponed →

Wed, 20 May 2020 05:42:47 UTC

Of feedback, and little things

Posted By Herb Sutter

I try hard to always ask for feedback on drafts of my talks and articles, and I always learn important things from the responses, including especially things I omitted but should include so as to pre-answer audience questions. Just like the best support call is the one the customer doesn’t have to make because they … Continue reading Of feedback, and little things →

Fri, 08 May 2020 05:13:56 UTC

Speaking at DevAroundTheSun

Posted By Herb Sutter

Next week, I’m honored to be part of DevAroundTheSun, a live 24-hour global event for COVID-19 relief that starts on May 12 at 12:00 UTC. It’s like LiveAid or Lady Gaga’s recent One World: #TogetherAtHome, but for developers. You can watch on Twitch and YouTube, and all the talks are relatively short at 25 minutes… … Continue reading Speaking at DevAroundTheSun →

Wed, 01 Apr 2020 21:44:15 UTC

When the hot loop?s done: Four quick tips for high throughput

Posted By Herb Sutter

These short tips are useful to remember when writing high-throughput code. You may already know most of them, and if so then please spread the word ? friends don?t let friends write performance bottlenecks. In a high-throughput hot loop: Avoid holding locks or other resources, unless you know it won?t block another performance-sensitive thread. Definitely … Continue reading When the hot loop?s done: Four quick tips for high throughput →

Sat, 14 Mar 2020 01:09:28 UTC

The Varna ISO C++ meeting is postponed

Posted By Herb Sutter

Yesterday morning, I announced to the committee that the next ISO WG21 (C++) meeting originally planned for June 1-6 in Varna, Bulgaria, has been postponed due to the covid-19 pandemic. We appreciate very much all the hard work and expense that our hosts, VMware and Chaos Group, have invested in welcoming us to their beautiful … Continue reading The Varna ISO C++ meeting is postponed →

Mon, 24 Feb 2020 01:43:44 UTC

References, simply

Posted By Herb Sutter

References are for parameter passing, including range-for. Sometimes they’re useful as local variables, but pointers or structured bindings are usually better. Any other use of references typically leads to endless design debates. This post is an attempt to shed light on this situation, and perhaps reduce some of the time spent on unresolved ongoing design … Continue reading References, simply →

Mon, 17 Feb 2020 17:57:00 UTC

Move, simply

Posted By Herb Sutter

C++ “move” semantics are simple, but they are still widely misunderstood. This post is an attempt to shed light on that situation. Thank you to the following for their feedback on drafts of this material: Howard Hinnant (lead designer and author of move semantics), Jens Maurer, Arthur O’Dwyer, Geoffrey Romer, Bjarne Stroustrup, Andrew Sutton, Ville … Continue reading Move, simply →

Sat, 15 Feb 2020 14:12:31 UTC

Trip report: Winter ISO C++ standards meeting (Prague)

Posted By Herb Sutter

A few minutes ago, the ISO C++ committee completed its final meeting of C++20 in Prague, Czech Republic. Our host, Avast Software, arranged for spacious and high-quality facilities for our six-day meeting from Monday through Saturday. The extra space was welcome, because we had a new record of 252 attendees. We currently have 23 active … Continue reading Trip report: Winter ISO C++ standards meeting (Prague) →

Wed, 12 Feb 2020 16:04:43 UTC

Last night's talk video is online: Quantifying C++'s accidental complexity, and what we really can do about it

Posted By Herb Sutter

The ISO C++ committee is here in Prague this week to finish C++20, and the meeting hosts Avast Software also arranged a great C++ meetup last night where over 300 people came out to see Bjarne Stroustrup, Tony Van Eerd, and me give talks. The videos are already online, see below — they’re really high … Continue reading Last night's talk video is online: Quantifying C++'s accidental complexity, and what we really can do about it →

Sat, 09 Nov 2019 12:47:21 UTC

Trip report: Autumn ISO C++ standards meeting (Belfast)

Posted By Herb Sutter

A few minutes ago, the ISO C++ committee completed its autumn meeting in Belfast, Northern Ireland, hosted with thanks by clearpool.io, Archer-Yates, Microsoft, C++ Alliance, MCS Group, Instil, and the Standard C++ Foundation. As usual, we met for six days Monday through Saturday, and we had about 200 attendees. We now have 22 active subgroups, … Continue reading Trip report: Autumn ISO C++ standards meeting (Belfast) →

Thu, 03 Oct 2019 21:44:44 UTC

GotW-ish Solution: The ?clonable? patter

Posted By Herb Sutter

Thu, 26 Sep 2019 22:26:21 UTC

My CppCon 2019 talk video is online

Posted By Herb Sutter

My CppCon 2019 talk is now available on YouTube, and the slides will soon be available here. I hope you enjoy it.

Wed, 25 Sep 2019 01:01:37 UTC

GotW-ish: The ?clonable? pattern

Posted By Herb Sutter

Yesterday, I received this question from a distinguished C++ expert who served on the ISO C++ committee for many years. The email poses a decades-old question that still has the classic roll-your-own answer in C++ Core Guidelines #C.130, and basically asks whether we’ve made significant progress toward automating this pattern in modern C++ compared to … Continue reading GotW-ish: The ‘clonable’ pattern →

Tue, 10 Sep 2019 23:06:47 UTC

Q&A: Does string::data() return a pointer valid for size() elements, or capacity() elements?

Posted By Herb Sutter

A reader asked: In C++17, for std::string::data(), is the returned buffer valid for the range [data(), data() + size()), or is it valid for [data(), data + capacity())? The latter seems more intuitive and what I think most people would expect reserve() to create given the non-const version of data() since C++17. … and then … Continue reading Q&A: Does string::data() return a pointer valid for size() elements, or capacity() elements? →

Thu, 05 Sep 2019 00:17:46 UTC

My favorite work-week of 2019

Posted By Herb Sutter

I just can’t get enough of this short video, combining interviews shot at last year’s CppCon with shots of our new “home” location that we’ll be enjoying for the first time two weeks from now. Please enjoy it — this is an excellent representation of what CppCon is like. Those of you who know me … Continue reading My favorite work-week of 2019 →

Thu, 05 Sep 2019 00:17:46 UTC

My favorite work-week of 2019

Posted By Herb Sutter

I just can’t get enough of this short video, combining interviews shot at last year’s CppCon with shots of our new “home” location that we’ll be enjoying for the first time two weeks from now. Please enjoy it — this is an excellent representation of what CppCon is like. Those of you who know me … Continue reading My favorite work-week of 2019 →

Fri, 26 Jul 2019 00:48:54 UTC

Survey results: Your ?top five? ISO C++ feature proposals

Posted By Herb Sutter

Today I collated and analyzed the results of the survey I posted two weeks ago. I presented you with a daunting unsorted list of ~300 eye-numbing paper titles, and still 289 of you responded with ~1,200 total votes (not everyone picked five things) many of which contained thoughtful ?how I would use it? verbatims. Thank … Continue reading Survey results: Your “top five” ISO C++ feature proposals →

Fri, 26 Jul 2019 00:48:54 UTC

Survey results: Your ?top five? ISO C++ feature proposals

Posted By Herb Sutter

Today I collated and analyzed the results of the survey I posted two weeks ago. I presented you with a daunting unsorted list of ~300 eye-numbing paper titles, and still 289 of you responded with ~1,200 total votes (not everyone picked five things) many of which contained thoughtful ?how I would use it? verbatims. Thank … Continue reading Survey results: Your “top five” ISO C++ feature proposals →

Sat, 20 Jul 2019 19:34:08 UTC

Trip report: Summer ISO C++ standards meeting (Cologne)

Posted By Herb Sutter

Obligatory comment: The C++20 Eagle has wings. At noon today, July 20 2019, the ISO C++ committee completed its summer meeting in Cologne, Germany, hosted with thanks by Think-Cell, SIGS Datacom, SimuNova, Silexica, Meeting C++, Josuttis Eckstein, Xara, Volker Dörr, Mike Spertus, and the Standard C++ Foundation. As usual, we met for six days Monday … Continue reading Trip report: Summer ISO C++ standards meeting (Cologne) →

Sat, 20 Jul 2019 19:34:08 UTC

Trip report: Summer ISO C++ standards meeting (Cologne)

Posted By Herb Sutter

Obligatory comment: The C++20 Eagle has wings. At noon today, July 20 2019, the ISO C++ committee completed its summer meeting in Cologne, Germany, hosted with thanks by Think-Cell, SIGS Datacom, SimuNova, Silexica, Meeting C++, Josuttis Eckstein, Xara, Volker Dörr, Mike Spertus, and the Standard C++ Foundation. As usual, we met for six days Monday … Continue reading Trip report: Summer ISO C++ standards meeting (Cologne) →

Sat, 13 Jul 2019 16:01:19 UTC

Draft FAQ: Why does the C++ standard ship every three years?

Posted By Herb Sutter

WG21 has a strict schedule (see P1000) by which we ship the standard every three years. We don?t delay it. Around this time of each cycle, we regularly get questions about ?but why so strict??, especially because we have many new committee members who aren?t as familiar with our history and the reasons why we … Continue reading Draft FAQ: Why does the C++ standard ship every three years? →

Sat, 13 Jul 2019 16:01:19 UTC

Draft FAQ: Why does the C++ standard ship every three years?

Posted By Herb Sutter

WG21 has a strict schedule (see P1000) by which we ship the standard every three years. We don?t delay it. Around this time of each cycle, we regularly get questions about ?but why so strict??, especially because we have many new committee members who aren?t as familiar with our history and the reasons why we … Continue reading Draft FAQ: Why does the C++ standard ship every three years? →

Thu, 11 Jul 2019 18:23:36 UTC

Your ?top five? ISO C++ feature proposals

Posted By Herb Sutter

The ISO C++ committee now regularly receives many more proposals than we can/should accept. For the meeting that begins this coming Monday, we have about 300 active technical papers, most targeting post-C++20. I now regularly get asked, including again a few hours ago, “how do we know which of these customers actually want and will use? … Continue reading Your “top five” ISO C++ feature proposals →

Thu, 11 Jul 2019 18:23:36 UTC

Your ?top five? ISO C++ feature proposals

Posted By Herb Sutter

The ISO C++ committee now regularly receives many more proposals than we can/should accept. For the meeting that begins this coming Monday, we have about 300 active technical papers, most targeting post-C++20. I now regularly get asked, including again a few hours ago, “how do we know which of these customers actually want and will use? … Continue reading Your “top five” ISO C++ feature proposals →

Tue, 09 Jul 2019 00:04:24 UTC

Guy Steele on designing a programming language for library building (OOPSLA ?98 keynote)

Posted By Herb Sutter

Classic, and timeless. (HT: Peter Sommerlad) Note that when he says “growing a language” he doesn’t mean literally the language itself — it’s not a talk about language evolution. Rather, he’s talking about enabling users to write rich and powerful abstractions in that language without having to go beg their language designer and compiler vendor … Continue reading Guy Steele on designing a programming language for library building (OOPSLA ’98 keynote) →

Tue, 09 Jul 2019 00:04:24 UTC

Guy Steele on designing a programming language for library building (OOPSLA ?98 keynote)

Posted By Herb Sutter

Classic, and timeless. (HT: Patricia Aas, Tony Van Eerd and Peter Sommerlad) Note that when he says “growing a language” he doesn’t mean literally the language itself — it’s not a talk about language evolution. Rather, he’s talking about enabling users to write rich and powerful abstractions in that language without having to go beg … Continue reading Guy Steele on designing a programming language for library building (OOPSLA ’98 keynote) →

Sat, 01 Jun 2019 22:44:10 UTC

A theme: Simplifying C++ (& CppCast podcast)

Posted By Herb Sutter

This week I was happy to join Rob Irving and Jason Turner on their great CppCast podcast. I chose “Simplifying C++” as the theme, because all of the active work I’ve chosen to do on C++ these days is on the common theme of simplifying how we teach, learn, and use C++… the “C++ UX” … Continue reading A theme: Simplifying C++ (& CppCast podcast) →

Sat, 01 Jun 2019 22:44:10 UTC

A theme: Simplifying C++ (& CppCast podcast)

Posted By Herb Sutter

This week I was happy to join Rob Irving and Jason Turner on their great CppCast podcast. I chose “Simplifying C++” as the theme, because all of the active work I’ve chosen to do on C++ these days is on the common theme of simplifying how we teach, learn, and use C++… the “C++ UX” … Continue reading A theme: Simplifying C++ (& CppCast podcast) →

Fri, 03 May 2019 23:59:46 UTC

EuroLLVM Lifetime talk by Gábor Horváth and Matthias Gehre

Posted By Herb Sutter

At CppCon 2018, I gave an update of my Lifetime analysis work that makes common cases of pointer/iterator/range/etc. dangling detectable at compile time (the spec is here in the C++ Core Guidelines GitHub repo). During that talk, we mentioned and demo’d two implementations: as a Visual C++ extension by Kyle Reed and Neil MacIntosh, and … Continue reading EuroLLVM Lifetime talk by Gábor Horváth and Matthias Gehre →

Fri, 03 May 2019 23:59:46 UTC

EuroLLVM Lifetime talk by Gábor Horváth and Matthias Gehre

Posted By Herb Sutter

At CppCon 2018, I gave an update of my Lifetime analysis work that makes common cases of pointer/iterator/range/etc. dangling detectable at compile time (the spec is here in the C++ Core Guidelines GitHub repo). During that talk, we mentioned and demo’d two implementations: as a Visual C++ extension by Kyle Reed and Neil MacIntosh, and … Continue reading EuroLLVM Lifetime talk by Gábor Horváth and Matthias Gehre →

Sun, 28 Apr 2019 23:33:28 UTC

ACCU talk video posted

Posted By Herb Sutter

Two weeks ago, I gave a talk at ACCU based on my paper P0709. The talk video was posted today: De-fragmenting C++: Making exceptions more affordable and usable [ACCU 2019] Thanks again to ACCU for inviting me and recording the talk, and for all the fun interactions and conversations with everyone at the conference!

Sun, 28 Apr 2019 23:33:28 UTC

ACCU talk video posted

Posted By Herb Sutter

Two weeks ago, I gave a talk at ACCU based on my paper P0709. The talk video was posted today: De-fragmenting C++: Making exceptions more affordable and usable [ACCU 2019] Thanks again to ACCU for inviting me and recording the talk, and for all the fun interactions and conversations with everyone at the conference!

Sat, 23 Feb 2019 22:03:13 UTC

Trip report: Winter ISO C++ standards meeting (Kona)

Posted By Herb Sutter

A few minutes ago, the ISO C++ committee completed its winter meeting in Kona, HI, USA, hosted with thanks by Plum Hall, NVIDIA, and the Standard C++ Foundation. As usual, we met for six days Monday through Saturday, including most evenings. This and the previous meeting were the biggest ISO C++ meetings in our 29-year … … Continue reading →

Sat, 23 Feb 2019 22:03:13 UTC

Trip report: Winter ISO C++ standards meeting (Kona)

Posted By Herb Sutter

A few minutes ago, the ISO C++ committee completed its winter meeting in Kona, HI, USA, hosted with thanks by Plum Hall, NVIDIA, and the Standard C++ Foundation. As usual, we met for six days Monday through Saturday, including most evenings. This and the previous meeting were the biggest ISO C++ meetings in our 29-year … Continue reading Trip report: Winter ISO C++ standards meeting (Kona) →

Tue, 13 Nov 2018 21:29:31 UTC

Trip report: Fall ISO C++ standards meeting (San Diego)

Posted By Herb Sutter

On Saturday November 10, the ISO C++ committee completed its fall meeting in San Diego, California, USA, hosted with thanks by Qualcomm. This was the biggest ISO C++ meeting in our 29-year history, with some 180 people at the meeting, representing 12 nations. For more details about our size increase, including how we adapted organizationally to […]

Tue, 13 Nov 2018 21:29:31 UTC

Trip report: Fall ISO C++ standards meeting (San Diego)

Posted By Herb Sutter

On Saturday November 10, the ISO C++ committee completed its fall meeting in San Diego, California, USA, hosted with thanks by Qualcomm. This was the biggest ISO C++ meeting in our 29-year history, with some 180 people at the meeting, representing 12 nations. For more details about our size increase, including how we adapted organizationally to … Continue reading Trip report: Fall ISO C++ standards meeting (San Diego) →

Mon, 05 Nov 2018 16:09:18 UTC

Pre-trip report: Fall ISO C++ standards meeting (San Diego)

Posted By Herb Sutter

In one hour, our fall meeting will begin. I’ll still write a trip report at the end with the results of the meeting, but because this is an unusually (and historically) large meeting we’ve had to make a few adjustments. This post is combined from a couple of administrative emails I sent to the committee […]

Mon, 05 Nov 2018 16:09:18 UTC

Pre-trip report: Fall ISO C++ standards meeting (San Diego)

Posted By Herb Sutter

In one hour, our fall meeting will begin. I’ll still write a trip report at the end with the results of the meeting, but because this is an unusually (and historically) large meeting we’ve had to make a few adjustments. This post is combined from a couple of administrative emails I sent to the committee … Continue reading Pre-trip report: Fall ISO C++ standards meeting (San Diego) →

Sun, 30 Sep 2018 17:09:36 UTC

My CppCon 2018 talk is now online

Posted By Herb Sutter

My Thursday talk is now online. Thanks to Mark Bashian and his wonderful team at Bash Films for posting the plenary sessions so quickly… it was great to see each keynote posted the following morning, and the rest of the CppCon 2018 videos will be posted in the next few weeks as usual. Thanks again to everyone who […]

Sun, 30 Sep 2018 17:09:36 UTC

My CppCon 2018 talk is now online

Posted By Herb Sutter

My Thursday talk is now online. Thanks to Mark Bashian and his wonderful team at Bash Films for posting the plenary sessions so quickly… it was great to see each keynote posted the following morning, and the rest of the CppCon 2018 videos will be posted in the next few weeks as usual. Thanks again to everyone who … Continue reading My CppCon 2018 talk is now online →

Fri, 21 Sep 2018 06:00:06 UTC

Lifetime profile v1.0 posted

Posted By Herb Sutter

I love C++. I also love safe code and not having to worry about dangling pointers and iterators and views. So I?ve been doing some work to make my life less conflicted: As long promised, the Lifetime profile 1.0 paper is now posted in the C++ Core Guidelines repo. It aims to detect common local […]

Fri, 21 Sep 2018 06:00:06 UTC

Lifetime profile v1.0 posted

Posted By Herb Sutter

I love C++. I also love safe code and not having to worry about dangling pointers and iterators and views. So I?ve been doing some work to make my life less conflicted: As long promised, the Lifetime profile 1.0 paper is now posted in the C++ Core Guidelines repo. It aims to detect common local … Continue reading Lifetime profile v1.0 posted →

Fri, 14 Sep 2018 18:53:14 UTC

My CppCon 2018 talk title and abstract

Posted By Herb Sutter

In just 10 days, we’ll be at CppCon! I can hardly wait for Bjarne’s new opening keynote and the 100+ other sessions… we have a really great lineup of speakers again this year. I’ll be giving a talk as well, and here’s the title and abstract for what I’ll be covering this year. I hope […]

Fri, 14 Sep 2018 18:53:14 UTC

My CppCon 2018 talk title and abstract

Posted By Herb Sutter

In just 10 days, we’ll be at CppCon! I can hardly wait for Bjarne’s new opening keynote and the 100+ other sessions… we have a really great lineup of speakers again this year. I’ll be giving a talk as well, and here’s the title and abstract for what I’ll be covering this year. I hope … Continue reading My CppCon 2018 talk title and abstract →

Mon, 02 Jul 2018 18:31:12 UTC

Trip report: Summer ISO C++ standards meeting (Rapperswil)

Posted By Herb Sutter

On Saturday June 9, the ISO C++ committee completed its summer meeting in beautiful Rapperswil, Switzerland, hosted with thanks by HSR Rapperswil, Zühlke, Netcetera, Bbv, SNV, Crealogix, Meeting C++, and BMW Car IT GmbH. We had some 140 people at the meeting, representing 11 national bodies. As usual, we met for six days Monday through […]

Mon, 02 Jul 2018 18:31:12 UTC

Trip report: Summer ISO C++ standards meeting (Rapperswil)

Posted By Herb Sutter

On Saturday June 9, the ISO C++ committee completed its summer meeting in beautiful Rapperswil, Switzerland, hosted with thanks by HSR Rapperswil, Zühlke, Netcetera, Bbv, SNV, Crealogix, Meeting C++, and BMW Car IT GmbH. We had some 140 people at the meeting, representing 11 national bodies. As usual, we met for six days Monday through … Continue reading Trip report: Summer ISO C++ standards meeting (Rapperswil) →

Tue, 03 Apr 2018 02:06:02 UTC

Trip report: Winter ISO C++ standards meeting (Jacksonville)

Posted By Herb Sutter

[Edited to add C++20 schedule at end] On Saturday March 17, the ISO C++ committee completed its winter meeting in Jacksonville, Florida, USA, hosted with thanks by the Standard C++ Foundation and Perennial. We had some 140 people at the meeting, representing 8 national bodies. As usual, we met for six days Monday through Saturday, […]

Tue, 03 Apr 2018 02:06:02 UTC

Trip report: Winter ISO C++ standards meeting (Jacksonville)

Posted By Herb Sutter

[Edited to add C++20 schedule at end] On Saturday March 17, the ISO C++ committee completed its winter meeting in Jacksonville, Florida, USA, hosted with thanks by the Standard C++ Foundation and Perennial. We had some 140 people at the meeting, representing 8 national bodies. As usual, we met for six days Monday through Saturday, … Continue reading Trip report: Winter ISO C++ standards meeting (Jacksonville) →

Sat, 11 Nov 2017 19:38:55 UTC

Trip report: Fall ISO C++ standards meeting (Albuquerque)

Posted By Herb Sutter

A few minutes ago, the ISO C++ committee completed its fall meeting in Albuquerque, New Mexico, USA, hosted with our thanks by Sandia National Laboratories. We had some 140 people at the meeting, representing 10 national bodies. As usual, we met for six days Monday through Saturday, including several evenings. The following are some highlights […]

Sat, 11 Nov 2017 19:38:55 UTC

Trip report: Fall ISO C++ standards meeting (Albuquerque)

Posted By Herb Sutter

A few minutes ago, the ISO C++ committee completed its fall meeting in Albuquerque, New Mexico, USA, hosted with our thanks by Sandia National Laboratories. We had some 140 people at the meeting, representing 10 national bodies. As usual, we met for six days Monday through Saturday, including several evenings. The following are some highlights … Continue reading Trip report: Fall ISO C++ standards meeting (Albuquerque) →

Thu, 02 Nov 2017 17:29:59 UTC

Interview: On simplifying C++

Posted By Herb Sutter

I was also interviewed recently by Anastasia Kazakova for the CLion blog, and that interview is now live: Toward a more powerful and simpler C++ with Herb Sutter Topics include: Concepts and modules (and coroutines) as the true hot topics right now How my work on metaclasses was motivated and developed Obligatory aside on operator<=> […]

Thu, 02 Nov 2017 17:29:59 UTC

Interview: On simplifying C++

Posted By Herb Sutter

I was also interviewed recently by Anastasia Kazakova for the CLion blog, and that interview is now live: Toward a more powerful and simpler C++ with Herb Sutter Topics include: Concepts and modules (and coroutines) as the true hot topics right now How my work on metaclasses was motivated and developed Obligatory aside on operator<=> … Continue reading Interview: On simplifying C++ →

Wed, 25 Oct 2017 18:31:51 UTC

My Qt World Summit keynote video is now online

Posted By Herb Sutter

The Qt World Summit videos were just posted, including my talk which was a condensed (40-minute) version of my CppCon 2017 metaclasses talk with some small tweaks for a Qt-specific audience. Here it is below:

Wed, 25 Oct 2017 18:31:51 UTC

My Qt World Summit keynote video is now online

Posted By Herb Sutter

The Qt World Summit videos were just posted, including my talk which was a condensed (40-minute) version of my CppCon 2017 metaclasses talk with some small tweaks for a Qt-specific audience. Here it is below:

Tue, 24 Oct 2017 00:54:28 UTC

Interview with InfoQ: C++17, and beyond?

Posted By Herb Sutter

Last week I did an interview by email with InfoQ. It just went live: C++17 is Here: Interview with Herb Sutter Topics include: What parts of C++17 should developers get most excited about? Why didn’t concepts make it into C++17? What will be the major focus areas for C++20? What do you find interesting or […]

Tue, 24 Oct 2017 00:54:28 UTC

Interview with InfoQ: C++17, and beyond?

Posted By Herb Sutter

Last week I did an interview by email with InfoQ. It just went live: C++17 is Here: Interview with Herb Sutter Topics include: What parts of C++17 should developers get most excited about? Why didn’t concepts make it into C++17? What will be the major focus areas for C++20? What do you find interesting or … Continue reading Interview with InfoQ: C++17, and beyond… →

Tue, 17 Oct 2017 22:04:12 UTC

11 is the new 7: iOS designers, what is it with the motion fetish? Please stop making us motion sick

Posted By Herb Sutter

In my household, iOS 7 was sickening — literally. When it came out with its flashy parallax home screen and (IMO too often gratuitous) motion effects, my wife was one of the many people it immediately made motion-sick. After 30 years of loyally loving Apple products, my wife almost had to dump her iPhone. It […]

Tue, 17 Oct 2017 22:04:12 UTC

11 is the new 7: iOS designers, what is it with the motion fetish? Please stop making us motion sick

Posted By Herb Sutter

In my household, iOS 7 was sickening — literally. When it came out with its flashy parallax home screen and (IMO too often gratuitous) motion effects, my wife was one of the many people it immediately made motion-sick. After 30 years of loyally loving Apple products, my wife almost had to dump her iPhone. It … Continue reading 11 is the new 7: iOS designers, what is it with the motion fetish? Please stop making us motion sick →

Fri, 29 Sep 2017 00:17:52 UTC

My CppCon 2017 session is now on YouTube

Posted By Herb Sutter

My CppCon talk yesterday is now on YouTube. You can read more about in my July blog post on “Metaclasses: Thoughts on generative C++” which contains links to the current paper and some examples that work so far on the live prototype compiler cppx.godbolt.org. Thanks again to Bjarne Stroustrup for making C++ so general and powerful with […]

Fri, 29 Sep 2017 00:17:52 UTC

My CppCon 2017 session is now on YouTube

Posted By Herb Sutter

My CppCon talk yesterday is now on YouTube. You can read more about in my July blog post on “Metaclasses: Thoughts on generative C++” which contains links to the current paper and some examples that work so far on the live prototype compiler cppx.godbolt.org. Thanks again to Bjarne Stroustrup for making C++ so general and powerful with … Continue reading My CppCon 2017 session is now on YouTube →

Wed, 06 Sep 2017 22:42:34 UTC

C++17 is formally approved

Posted By Herb Sutter

[revised 9/8 to reflect that there is no need to wait till the next WG21 meeting] As I mentioned in my Kona (March) trip report, WG21 (the ISO C++ committee) completed work on C++17 at our March meeting. At that point it was technically finalized, and since then we have been in the final procedural […]

Wed, 06 Sep 2017 22:42:34 UTC

C++17 is formally approved

Posted By Herb Sutter

[revised 9/8 to reflect that there is no need to wait till the next WG21 meeting] As I mentioned in my Kona (March) trip report, WG21 (the ISO C++ committee) completed work on C++17 at our March meeting. At that point it was technically finalized, and since then we have been in the final procedural … Continue reading C++17 is formally approved →

Tue, 05 Sep 2017 18:23:12 UTC

Update on October seminar in London

Posted By Herb Sutter

As I mentioned earlier, part of my fall schedule is to give a repeat of this spring’s sold-out seminar: “High-Performance and Low-Latency C++” (October 9-11, London, UK). I am still getting mails about whether there are alternative/additional European dates for this seminar. Unfortunately, the answer is still no, but since I’m getting inquiries about it let […]

Tue, 05 Sep 2017 18:23:12 UTC

Update on October seminar in London

Posted By Herb Sutter

As I mentioned earlier, part of my fall schedule is to give a repeat of this spring’s sold-out seminar: “High-Performance and Low-Latency C++” (October 9-11, London, UK). I am still getting mails about whether there are alternative/additional European dates for this seminar. Unfortunately, the answer is still no, but since I’m getting inquiries about it let … Continue reading Update on October seminar in London →

Wed, 26 Jul 2017 15:34:32 UTC

Metaclasses: Thoughts on generative C++

Posted By Herb Sutter

I?ve been working on an experimental new C++ language feature tentatively called ?metaclasses? that aims to make C++ programming both more powerful and simpler. You can find out about it here: Current proposal paper: P0707R1. I hope the first ten pages give a readable motivation and overview. (The best two pages to start with are […]

Wed, 26 Jul 2017 15:34:32 UTC

Metaclasses: Thoughts on generative C++

Posted By Herb Sutter

I?ve been working on an experimental new C++ language feature tentatively called ?metaclasses? that aims to make C++ programming both more powerful and simpler. You can find out about it here: Current proposal paper: P0707R1. I hope the first ten pages give a readable motivation and overview. (The best two pages to start with are … Continue reading Metaclasses: Thoughts on generative C++ →

Sat, 15 Jul 2017 15:39:08 UTC

Trip report: Summer ISO C++ standards meeting (Toronto)

Posted By Herb Sutter

[This post will be updated with additional details as mentioned in the comments section at bottom.] A few minutes ago, the ISO C++ committee completed its summer meeting in Toronto, Ontario, Canada. We had some 120 people at the meeting, representing nine national bodies. As usual, we met for six days Monday through Saturday, including […]

Sat, 15 Jul 2017 15:39:08 UTC

Trip report: Summer ISO C++ standards meeting (Toronto)

Posted By Herb Sutter

[This post will be updated with additional details as mentioned in the comments section at bottom.] A few minutes ago, the ISO C++ committee completed its summer meeting in Toronto, Ontario, Canada. We had some 120 people at the meeting, representing nine national bodies. As usual, we met for six days Monday through Saturday, including … Continue reading Trip report: Summer ISO C++ standards meeting (Toronto) →

Mon, 26 Jun 2017 05:52:01 UTC

This fall: ACAT & CppCon (Seattle), High-Performance/Low-Latency C++ (London), Qt World Summit (Berlin)

Posted By Herb Sutter

[6/26: Updated to add ACAT] I can’t remember the last time I’ve gone to Europe twice in one year, but this is the year… up first are ACAT in August and CppCon in September, then a week later in early October I’ll be heading to London to give a single repeat of the three-day High-Performance and […]

Mon, 26 Jun 2017 05:52:01 UTC

This fall: ACAT & CppCon (Seattle), High-Performance/Low-Latency C++ (London), Qt World Summit (Berlin)

Posted By Herb Sutter

[6/26: Updated to add ACAT] I can’t remember the last time I’ve gone to Europe twice in one year, but this is the year… up first are ACAT in August and CppCon in September, then a week later in early October I’ll be heading to London to give a single repeat of the three-day High-Performance and … Continue reading This fall: ACAT & CppCon (Seattle), High-Performance/Low-Latency C++ (London), Qt World Summit (Berlin) →

Sat, 25 Mar 2017 00:03:44 UTC

Trip report: Winter ISO C++ standards meeting (Kona), C++17 is complete

Posted By Herb Sutter

The ISO C++ committee had its winter meeting in Kona, HI, USA from February 27 to March 4, hosted by Plum Hall and the Standard C++ Foundation. Over 100 people attended, officially representing 9 countries. C++17 is done! The big news is that we completed C++17, which dominated the work of the meeting: C++17 is now […]

Sat, 25 Mar 2017 00:03:44 UTC

Trip report: Winter ISO C++ standards meeting (Kona), C++17 is complete

Posted By Herb Sutter

The ISO C++ committee had its winter meeting in Kona, HI, USA from February 27 to March 4, hosted by Plum Hall and the Standard C++ Foundation. Over 100 people attended, officially representing 9 countries. C++17 is done! The big news is that we completed C++17, which dominated the work of the meeting: C++17 is now … Continue reading Trip report: Winter ISO C++ standards meeting (Kona), C++17 is complete →

Wed, 15 Feb 2017 17:36:40 UTC

Distinguishing between maybe-null vs never-null is the important thing

Posted By Herb Sutter

This discussion today on the Core Guidelines repo issues is probably of broad interest. It’s regarding why we chose to annotate not_null<T*> rather than the reverse in the Guidelines and the Guideline Support Library (GSL). Pasting here: I would take this interface reduction one step further and make an un-annotated T* implicitly “not null”. I […]

Wed, 15 Feb 2017 17:36:40 UTC

Distinguishing between maybe-null vs never-null is the important thing

Posted By Herb Sutter

This discussion today on the Core Guidelines repo issues is probably of broad interest. It’s regarding why we chose to annotate not_null<T*> rather than the reverse in the Guidelines and the Guideline Support Library (GSL). Pasting here: I would take this interface reduction one step further and make an un-annotated T* implicitly “not null”. I … Continue reading Distinguishing between maybe-null vs never-null is the important thing →

Mon, 13 Feb 2017 18:13:49 UTC

This spring: High-Performance and Low-Latency C++ (Stockholm) and ACCU (Bristol)

Posted By Herb Sutter

I don’t get to Europe very often apart from ISO C++ standards meetings, but this spring I’ve been able to accept invitations for two English-language European events in the last week of April. If you’re interested in attending, please check out the links, and I look forward to meeting and re-meeting many of you there. Tue-Thu […]

Mon, 13 Feb 2017 18:13:49 UTC

This spring: High-Performance and Low-Latency C++ (Stockholm) and ACCU (Bristol)

Posted By Herb Sutter

I don’t get to Europe very often apart from ISO C++ standards meetings, but this spring I’ve been able to accept invitations for two English-language European events in the last week of April. If you’re interested in attending, please check out the links, and I look forward to meeting and re-meeting many of you there. Tue-Thu … Continue reading This spring: High-Performance and Low-Latency C++ (Stockholm) and ACCU (Bristol) →

Tue, 15 Nov 2016 18:06:36 UTC

Trip report: Fall ISO C++ standards meeting (Issaquah)

Posted By Herb Sutter

[ETA: Mentioning specific TSes expected to be merged soon post-C++17.] On Saturday, the ISO C++ committee completed its fall meeting in Issaquah, WA, USA, hosted by Microsoft and the Standard C++ Foundation. We had over 110 people at the meeting, representing 10 national bodies. We also had more than usual local visitors ? note that […]

Tue, 15 Nov 2016 18:06:36 UTC

Trip report: Fall ISO C++ standards meeting (Issaquah)

Posted By Herb Sutter

[ETA: Mentioning specific TSes expected to be merged soon post-C++17.] On Saturday, the ISO C++ committee completed its fall meeting in Issaquah, WA, USA, hosted by Microsoft and the Standard C++ Foundation. We had over 110 people at the meeting, representing 10 national bodies. We also had more than usual local visitors ? note that … Continue reading Trip report: Fall ISO C++ standards meeting (Issaquah) →

Tue, 27 Sep 2016 18:02:29 UTC

My CppCon talk video is online

Posted By Herb Sutter

You can find it on YouTube here. [ETA: Slides are here.] Here’s an embed, below:

Tue, 27 Sep 2016 18:02:29 UTC

My CppCon talk video is online

Posted By Herb Sutter

You can find it on YouTube here. [ETA: Slides are here.] Here’s an embed, below:

Sun, 25 Sep 2016 18:46:02 UTC

To store a destructor

Posted By Herb Sutter

[edited to add notes and apply Howard Hinnant’s de-escalation to static_cast] After my talk on Friday, a couple of people asked me how I was storing destructors in my gcpp library. Since several people are interested, I thought I’d write a note. The short answer is to store two raw pointers: one to the object, and […]

Sun, 25 Sep 2016 18:46:02 UTC

To store a destructor

Posted By Herb Sutter

[edited to add notes and apply Howard Hinnant’s de-escalation to static_cast] After my talk on Friday, a couple of people asked me how I was storing destructors in my gcpp library. Since several people are interested, I thought I’d write a note. The short answer is to store two raw pointers: one to the object, and … Continue reading To store a destructor →

Thu, 22 Sep 2016 16:31:20 UTC

My talk tomorrow, and a little experimental library

Posted By Herb Sutter

Thanks to everyone who responded to the little puzzle for CppCon that I posted on the weekend. I’ll show a couple of answers in my talk tomorrow at the conference, which will be recorded and should be available on YouTube in a week or so. My talk will focus primarily on how to use the great […]

Thu, 22 Sep 2016 16:31:20 UTC

My talk tomorrow, and a little experimental library

Posted By Herb Sutter

Thanks to everyone who responded to the little puzzle for CppCon that I posted on the weekend. I’ll show a couple of answers in my talk tomorrow at the conference, which will be recorded and should be available on YouTube in a week or so. My talk will focus primarily on how to use the great … Continue reading My talk tomorrow, and a little experimental library →

Sun, 18 Sep 2016 00:22:10 UTC

A little puzzle for CppCon

Posted By Herb Sutter

As CppCon begins, Stevens Capital Management is running an SCM Challenge quiz with questions provided by some CppCon speakers.(Creating a little login is required, in part so you can save progress, but they promise not to spam you.) I’ve contributed a simple little question that’s directly related to my CppCon closing plenary session on Friday. By “simple little” I mean that my […]

Sun, 18 Sep 2016 00:22:10 UTC

A little puzzle for CppCon

Posted By Herb Sutter

As CppCon begins, Stevens Capital Management is running an SCM Challenge quiz with questions provided by some CppCon speakers.(Creating a little login is required, in part so you can save progress, but they promise not to spam you.) I’ve contributed a simple little question that’s directly related to my CppCon closing plenary session on Friday. By “simple little” I mean that my … Continue reading A little puzzle for CppCon →

Thu, 30 Jun 2016 23:17:09 UTC

Trip report: Summer ISO C++ standards meeting (Oulu)

Posted By Herb Sutter

On June 25, the ISO C++ committee completed its summer meeting in Oulu, Finland, hosted by Symbio and the Finnish national body. We again had some 100 experts officially representing nine national bodies. As usual, we met for six days Monday through Saturday, and around the clock from 8:30am till 11pm most days ? evening […]

Thu, 30 Jun 2016 23:17:09 UTC

Trip report: Summer ISO C++ standards meeting (Oulu)

Posted By Herb Sutter

On June 25, the ISO C++ committee completed its summer meeting in Oulu, Finland, hosted by Symbio and the Finnish national body. We again had some 100 experts officially representing nine national bodies. As usual, we met for six days Monday through Saturday, and around the clock from 8:30am till 11pm most days ? evening … Continue reading Trip report: Summer ISO C++ standards meeting (Oulu) →

Mon, 27 Jun 2016 17:36:21 UTC

CppCast interview about the Oulu ISO C++ meeting

Posted By Herb Sutter

On Saturday afternoon, at the ISO C++ meeting in Oulu, Finland, we completed the feature set of C++17 and approved sending out the feature-complete document for its primary international comment ballot (aka “CD” or Committee Draft ballot). An hour later, I sat down (via Skype) with Rob and Jason to do a CppCast interview about […]

Mon, 27 Jun 2016 17:36:21 UTC

CppCast interview about the Oulu ISO C++ meeting

Posted By Herb Sutter

On Saturday afternoon, at the ISO C++ meeting in Oulu, Finland, we completed the feature set of C++17 and approved sending out the feature-complete document for its primary international comment ballot (aka “CD” or Committee Draft ballot). An hour later, I sat down (via Skype) with Rob and Jason to do a CppCast interview about … Continue reading CppCast interview about the Oulu ISO C++ meeting →

Fri, 11 Mar 2016 23:50:44 UTC

Trip report: Winter ISO C++ standards meeting

Posted By Herb Sutter

On March 5, the ISO C++ committee completed its winter meeting in Jacksonville, FL, USA. We had record-tying attendance, with over 110 experts officially representing eight national bodies. As usual, we met for six days Monday through Saturday, and around the clock from 8:30am till 10pm most days, after which many people still went back […]

Fri, 11 Mar 2016 23:50:44 UTC

Trip report: Winter ISO C++ standards meeting

Posted By Herb Sutter

On March 5, the ISO C++ committee completed its winter meeting in Jacksonville, FL, USA. We had record-tying attendance, with over 110 experts officially representing eight national bodies. As usual, we met for six days Monday through Saturday, and around the clock from 8:30am till 10pm most days, after which many people still went back […]

Sun, 25 Oct 2015 21:28:43 UTC

Trip report: Fall 2015 ISO C++ standards meeting

Posted By Herb Sutter

Yesterday we just wrapped up our fall ISO C++ committee meeting in Kona, HI, USA. We normally meet in windowless rooms all week, but because of the committee’s current size we had to use the hotel’s largest space which was open-air (though technically still windowless). It was a busy week. During the days from 8:00am-5:00pm, […]

Sun, 25 Oct 2015 21:28:43 UTC

Trip report: Fall 2015 ISO C++ standards meeting

Posted By Herb Sutter

Yesterday we just wrapped up our fall ISO C++ committee meeting in Kona, HI, USA. We normally meet in windowless rooms all week, but because of the committee’s current size we had to use the hotel’s largest space which was open-air (though technically still windowless). It was a busy week. During the days from 8:00am-5:00pm, […]

Sun, 27 Sep 2015 15:51:33 UTC

My talk at CppCon

Posted By Herb Sutter

My talk at CppCon is now available online: “Writing Good C++14… By Default” (slides)  It’s about type and memory safety for C++ — not a small target. Definitely watch Bjarne’s keynote first. This talk is largely designed to be “part 2” of his keynote. I’m very excited about the C++ Core Guidelines to promote modern C++14 style […]

Sun, 27 Sep 2015 15:51:33 UTC

My talk at CppCon

Posted By Herb Sutter

My talk at CppCon is now available online: “Writing Good C++14… By Default” (slides)  It’s about type and memory safety for C++ — not a small target. Definitely watch Bjarne’s keynote first. This talk is largely designed to be “part 2” of his keynote. I’m very excited about the C++ Core Guidelines to promote modern C++14 style […]

Sat, 01 Aug 2015 02:10:53 UTC

CppCon program online

Posted By Herb Sutter

The CppCon 2015 program is up! If anything this is an even stronger program than last year, which is saying something. My name isn’t on it yet, but yes, I am giving a talk at CppCon. It should be announced this week.Filed under: Uncategorized

Sat, 01 Aug 2015 02:10:53 UTC

CppCon program online

Posted By Herb Sutter

The CppCon 2015 program is up! If anything this is an even stronger program than last year, which is saying something. My name isn’t on it yet, but yes, I am giving a talk at CppCon. It should be announced this week.

Fri, 05 Jun 2015 18:01:01 UTC

Trip report: Spring ISO C++ meeting

Posted By Herb Sutter

I just posted my Lenexa ISO C++ trip report over on isocpp.org covering our recent meeting. The ISO C++ committee is shipping more work sooner via concurrent Technical Specifications, but it?s still fairly new to find ourselves doing so much work that the ?new normal? is to issue an international ballot from every ISO C++ meeting. This […]

Fri, 05 Jun 2015 18:01:01 UTC

Trip report: Spring ISO C++ meeting

Posted By Herb Sutter

I just posted my Lenexa ISO C++ trip report over on isocpp.org covering our recent meeting. The ISO C++ committee is shipping more work sooner via concurrent Technical Specifications, but its still fairly new to find ourselves doing so much work that the new normal is to issue an international ballot from every ISO C++ meeting. This […]

Tue, 05 May 2015 03:49:25 UTC

Announcing a financial assistance policy for ISO C++ meetings

Posted By Herb Sutter

Today it was my pleasure to announce a financial assistance policy for ISO C++ meetings. You can read about it at the announcement here.

Tue, 05 May 2015 03:49:25 UTC

Announcing a financial assistance policy for ISO C++ meetings

Posted By Herb Sutter

Today it was my pleasure to announce a financial assistance policy for ISO C++ meetings. You can read about it at the announcement here.Filed under: Uncategorized

Thu, 16 Apr 2015 19:08:14 UTC

Reader Q&A: Why was implicit int removed?

Posted By Herb Sutter

Today, Vikram Ojha asked via email: I was just thinking why we removed “int” as default return type from C++ which was there in our traditional C type. Why we made such changes, is it to make language more safer? Short answer: Because it’s ‘inherently dangerous’ in the words of the C committee. For C++, see […]

Thu, 16 Apr 2015 19:08:14 UTC

Reader Q&A: Why was implicit int removed?

Posted By Herb Sutter

Today, Vikram Ojha asked via email: I was just thinking why we removed “int” as default return type from C++ which was there in our traditional C type. Why we made such changes, is it to make language more safer? Short answer: Because it’s ‘inherently dangerous’ in the words of the C committee. For C++, see […]

Thu, 15 Jan 2015 01:23:38 UTC

Reader Q&A: auto and for loop index variables

Posted By Herb Sutter

[Edit: I really like the ‘range of values’ several commenters proposed. We do need something like that in the standard library, and it may well come in with ranges, but as you can see there are several simple ways to roll your own in the meantime, and some third-party libraries have similar features already.] Today […]

Thu, 15 Jan 2015 01:23:38 UTC

Reader Q&A: auto and for loop index variables

Posted By Herb Sutter

Today a reader asked the following question: So Ive been reading all I can about c++11/c++14 and beyond when time permits.  I like auto, I really do, I believe in it.  I have a small problem Im trying to decide what to do about.  So in old legacy code we have things like this: for […]

Mon, 01 Dec 2014 20:46:43 UTC

A quick poll about order of evaluation?

Posted By Herb Sutter

Consider this program fragment: std::vector<int> v = { 0, 0 }; int i = 0; v[i++] = i++; std::cout << v[0] << v[1] << endl; My question is not what it might print under today’s C++ rules. The third line runs afoul of two different categories of undefined and unspecified behavior. Rather, my question is […]

Mon, 01 Dec 2014 20:46:43 UTC

A quick poll about order of evaluation&

Posted By Herb Sutter

Consider this program fragment: std::vector<int> v = { 0, 0 }; int i = 0; v[i++] = i++; std::cout << v[0] << v[1] << endl; My question is not what it might print under today’s C++ rules. The third line runs afoul of two different categories of undefined and unspecified behavior. Rather, my question is […]

Mon, 24 Nov 2014 19:16:19 UTC

Updates to my trip report

Posted By Herb Sutter

(this is an echo of what I also just posted on isocpp.org) I wanted to add a few more things to my meeting trip report. I updated the trip report in-place, but for those who want to see the “diffs” I’ll also post just the new parts here as a standalone post: There were 106 […]

Mon, 24 Nov 2014 19:16:19 UTC

Updates to my trip report

Posted By Herb Sutter

(this is an echo of what I also just posted on isocpp.org) I wanted to add a few more things to my meeting trip report. I updated the trip report in-place, but for those who want to see the “diffs” I’ll also post just the new parts here as a standalone post: There were 106 […]

Sun, 23 Nov 2014 00:19:54 UTC

Trip Report: Fall ISO C++ Meeting

Posted By Herb Sutter

I just posted my ISO C++ meeting trip report over on isocpp.org covering our meeting in Urbana-Champaign earlier this month. The ISO C++ committee is shipping more work sooner via concurrent Technical Specifications, but it’s still fairly new to find ourselves doing so much work that the “new normal” is to issue an international ballot from every […]

Sun, 23 Nov 2014 00:19:54 UTC

Trip Report: Fall ISO C++ Meeting

Posted By Herb Sutter

I just posted my ISO C++ meeting trip report over on isocpp.org covering our meeting in Urbana-Champaign earlier this month. The ISO C++ committee is shipping more work sooner via concurrent Technical Specifications, but it’s still fairly new to find ourselves doing so much work that the “new normal” is to issue an international ballot from every […]

Wed, 12 Nov 2014 17:25:26 UTC

VS, Clang, cross-platform, and a short video

Posted By Herb Sutter

Today my team was part of the Visual Studio 2015 Preview announcement, and it’s nice to be able to share that Visual Studio is now going to support targeting Android and soon iOS, using the Clang compiler, from right inside VS. This is in addition to continued conformance and other improvements in our own VC++ compiler […]

Wed, 12 Nov 2014 17:25:26 UTC

VS, Clang, cross-platform, and a short video

Posted By Herb Sutter

Today my team was part of the Visual Studio 2015 Preview announcement, and it’s nice to be able to share that Visual Studio is now going to support targeting Android and soon iOS, using the Clang compiler, from right inside VS. This is in addition to continued conformance and other improvements in our own VC++ compiler […]

Sun, 19 Oct 2014 01:01:43 UTC

My CppCon talks

Posted By Herb Sutter

Also, my CppCon talks are all up on the CppCon YouTube channel. You can find them here: Back to the Basics! Essentials of Modern C++ Style: Loops, pointers and references, smart pointers, variable declarations, and parameter passing Lock-Free Programming (or, Juggling Razor Blades), Part 1: Lazy initialization with DCL vs. call_once vs. function local statics, […]

Sun, 19 Oct 2014 01:01:43 UTC

My CppCon talks

Posted By Herb Sutter

Also, my CppCon talks are all up on the CppCon YouTube channel. You can find them here: Back to the Basics! Essentials of Modern C++ Style: Loops, pointers and references, smart pointers, variable declarations, and parameter passing Lock-Free Programming (or, Juggling Razor Blades), Part 1: Lazy initialization with DCL vs. call_once vs. function local statics, […]

Sun, 19 Oct 2014 00:51:51 UTC

New Interview

Posted By Herb Sutter

While we were both at CppCon last month and had cameras around, Brian Overland interviewed me for InformIT. The video just went up a couple of days ago. You can find it here. If you’ve seen my interviews before, the first 14 minutes is stuff you’ve heard before, but I think you’ll find the last […]

Sun, 19 Oct 2014 00:51:51 UTC

New Interview

Posted By Herb Sutter

While we were both at CppCon last month and had cameras around, Brian Overland interviewed me for InformIT. The video just went up a couple of days ago. You can find it here. If you’ve seen my interviews before, the first 14 minutes is stuff you’ve heard before, but I think you’ll find the last […]

Tue, 16 Sep 2014 15:48:42 UTC

Next stop: Stuttgart

Posted By Herb Sutter

CppCon was a blast. I can’t wait till next year. But there’s something coming up sooner than that: In two weeks, Scott and Andrei and I will be holding the C++ and Beyond 2014 “Road Show” in Stuttgart, Germany. The key to this event is not new material, but a new location. Whereas all other […]

Tue, 16 Sep 2014 15:48:42 UTC

Next stop: Stuttgart

Posted By Herb Sutter

CppCon was a blast. I can’t wait till next year. But there’s something coming up sooner than that: In two weeks, Scott and Andrei and I will be holding the C++ and Beyond 2014 “Road Show” in Stuttgart, Germany. The key to this event is not new material, but a new location. Whereas all other […]

Mon, 15 Sep 2014 17:13:04 UTC

Trip Report: CppCon 2014

Posted By Herb Sutter

I just posted my CppCon trip report over at isocpp.org. I’ll repeat just the last part here: Huge thanks again to the 150+ speakers, planners, and volunteers without whom this wonderful “C++ festival” (as several people spontaneously called it) would not have been possible. I had guardedly high hopes for the event, but I think […]

Mon, 15 Sep 2014 17:13:04 UTC

Trip Report: CppCon 2014

Posted By Herb Sutter

I just posted my CppCon trip report over at isocpp.org. I’ll repeat just the last part here: Huge thanks again to the 150+ speakers, planners, and volunteers without whom this wonderful “C++ festival” (as several people spontaneously called it) would not have been possible. I had guardedly high hopes for the event, but I think […]

Tue, 19 Aug 2014 15:44:57 UTC

My CppCon Plenary (updated)

Posted By Herb Sutter

When we announced the CppCon conference program and I posted my final talk selection, the original plan for my Friday ‘endnote’ plenary was for it to focus on giving an update on future standardization plans. However, quite a few people immediately wrote me to express disappointment that I wouldn’t cover my Modern C++ Style material, […]

Tue, 19 Aug 2014 15:44:57 UTC

My CppCon Plenary (updated)

Posted By Herb Sutter

When we announced the CppCon conference program and I posted my final talk selection, the original plan for my Friday ‘endnote’ plenary was for it to focus on giving an update on future standardization plans. However, quite a few people immediately wrote me to express disappointment that I wouldn’t cover my Modern C++ Style material, […]

Fri, 04 Jul 2014 03:05:09 UTC

Trip report: Summer ISO C++ meeting

Posted By Herb Sutter

I just posted my isocpp.org trip report from the recently concluded ISO C++ meeting in Switzerland. We sent three documents out for ballot. This is the first time in ISO C++ history that we have sent three documents out for ballot out of a single meeting. Wow. See the full trip report for more details…

Fri, 04 Jul 2014 03:05:09 UTC

Trip report: Summer ISO C++ meeting

Posted By Herb Sutter

I just posted my isocpp.org trip report from the recently concluded ISO C++ meeting in Switzerland. We sent three documents out for ballot. This is the first time in ISO C++ history that we have sent three documents out for ballot out of a single meeting. Wow. See the full trip report for more details…Filed […]

Wed, 02 Jul 2014 23:50:54 UTC

My CppCon talks

Posted By Herb Sutter

A few weeks ago, here and here, I posted the five talks I submitted for CppCon. Good news (really): The CppCon program (posted today) is so strong that some of my talks legitimately fell below the cut line. Instead of giving five talks, I’ll be giving two ? one as I proposed it, one a […]

Wed, 02 Jul 2014 23:50:54 UTC

My CppCon talks

Posted By Herb Sutter

A few weeks ago, here and here, I posted the five talks I submitted for CppCon. Good news (really): The CppCon program (posted today) is so strong that some of my talks legitimately fell below the cut line. Instead of giving five talks, I’ll be giving two  one as I proposed it, one a […]

Wed, 21 May 2014 11:21:46 UTC

CppCon: My Proposed Talks (Part 2)

Posted By Herb Sutter

Yesterday I posted three of my proposed talks for CppCon. These are the ones I’ve given publicly before, but they’re not retreads ? all are fresh and up to date, with refreshed or new material. But I’ve also proposed two brand new talks ? titles and abstracts are below. Note: The CppCon program committee will […]

Wed, 21 May 2014 11:21:46 UTC

CppCon: My Proposed Talks (Part 2)

Posted By Herb Sutter

Yesterday I posted three of my proposed talks for CppCon. These are the ones I’ve given publicly before, but they’re not retreads  all are fresh and up to date, with refreshed or new material. But I’ve also proposed two brand new talks  titles and abstracts are below. Note: The CppCon program committee will […]

Tue, 20 May 2014 12:24:16 UTC

CppCon: My Proposed Talks (Part 1)

Posted By Herb Sutter

I’ve been watching the talk proposals rolling in for CppCon, now well over 100 of them, and I was already looking forward to this conference but I just keep getting more jazzed. For my part, I’ve proposed five talks, with between 5 and 10 hours of material. I thought I’d share some of them here. […]

Tue, 20 May 2014 12:24:16 UTC

CppCon: My Proposed Talks (Part 1)

Posted By Herb Sutter

I’ve been watching the talk proposals rolling in for CppCon, now well over 100 of them, and I was already looking forward to this conference but I just keep getting more jazzed. For my part, I’ve proposed five talks, with between 5 and 10 hours of material. I thought I’d share some of them here. […]

Sun, 04 May 2014 03:35:46 UTC

Reader Q&A: How can I prevent a type from being instantiated on the stack?

Posted By Herb Sutter

Anubhav asked: An interesting question has come up in our project while debating operator new as a class member function. Specifically, the question is about whether such a class should be allowed to be instantiated on stack. The understanding is that a class providing its own operator new would likely have special layout considerations which […]

Sun, 04 May 2014 03:35:46 UTC

Reader Q&A: How can I prevent a type from being instantiated on the stack?

Posted By Herb Sutter

Anubhav asked: An interesting question has come up in our project while debating operator new as a class member function. Specifically, the question is about whether such a class should be allowed to be instantiated on stack. The understanding is that a class providing its own operator new would likely have special layout considerations which […]

Mon, 07 Apr 2014 16:46:17 UTC

C++ and Beyond ?Encore? in 2014: Sep 29 ? Oct 1, Stuttgart, Germany

Posted By Herb Sutter

A lot of you have been asking me whether there will be some sort of C++ and Beyond in 2014. Also, over the past few years many of you have also asked me if there will ever be a C&B outside North America. I’m pleased to report that we are doing a ‘European Encore’ event […]

Mon, 07 Apr 2014 16:46:17 UTC

C++ and Beyond Encore in 2014: Sep 29  Oct 1, Stuttgart, Germany

Posted By Herb Sutter

A lot of you have been asking me whether there will be some sort of C++ and Beyond in 2014. Also, over the past few years many of you have also asked me if there will ever be a C&B outside North America. I’m pleased to report that we are doing a ‘European Encore’ event […]

Fri, 04 Apr 2014 16:45:22 UTC

Yesterday?s Build talk is now online

Posted By Herb Sutter

That was fast!

Fri, 04 Apr 2014 16:45:22 UTC

Yesterdays Build talk is now online

Posted By Herb Sutter

That was fast! Filed under: C++, Microsoft

Thu, 03 Apr 2014 15:36:00 UTC

Reader Q&A: Generic lambdas

Posted By Herb Sutter

Tim just added this comment on the GotW #3 Solution blog post from last year: Are you sure you can use auto in lambda like this?I can not compile the code and I’m pretty sure auto does not work here. If you mean auto as a lambda parameter type, such as [](auto& s){ use(s); } […]

Thu, 03 Apr 2014 15:36:00 UTC

Reader Q&A: Generic lambdas

Posted By Herb Sutter

Tim just added this comment on the GotW #3 Solution blog post from last year: Are you sure you can use auto in lambda like this?I can not compile the code and I’m pretty sure auto does not work here. If you mean auto as a lambda parameter type, such as [](auto& s){ use(s); } […]

Wed, 02 Apr 2014 20:44:20 UTC

Build talk tomorrow: Modern C++ ? What you need to know

Posted By Herb Sutter

If you’re at Build in San Francisco tomorrow afternoon, I invite you to swing by and spend an hour with us in session 2-661: Modern C++: What you need to know by Herb Sutter Build 2014, Room 20052:30-3:30 pm, Thursday April 3, 2014 If you’re new to C++, this talk is aimed directly at you. […]

Wed, 02 Apr 2014 20:44:20 UTC

Build talk tomorrow: Modern C++  What you need to know

Posted By Herb Sutter

If you’re at Build in San Francisco tomorrow afternoon, I invite you to swing by and spend an hour with us in session 2-661: Modern C++: What you need to know by Herb Sutter Build 2014, Room 20052:30-3:30 pm, Thursday April 3, 2014 If you’re new to C++, this talk is aimed directly at you. […]

Tue, 25 Mar 2014 14:05:40 UTC

CppCon 2014 Call for Submissions

Posted By Herb Sutter

More news about the first annual CppCon that was announced last week: CppCon 2014 Call for Submissions CppCon is the annual, week-long face-to-face gathering for the entire C++ community. The conference is organized by the C++ community for the community and so we invite you to present. Have you learned something interesting about C++, maybe a new technique […]

Tue, 25 Mar 2014 14:05:40 UTC

CppCon 2014 Call for Submissions

Posted By Herb Sutter

More news about the first annual CppCon that was announced last week: CppCon 2014 Call for Submissions CppCon is the annual, week-long face-to-face gathering for the entire C++ community. The conference is organized by the C++ community for the community and so we invite you to present. Have you learned something interesting about C++, maybe a new technique […]

Tue, 18 Mar 2014 16:21:28 UTC

We have CppCon?

Posted By Herb Sutter

I’m really excited about this event! Note that the first 100 registrations get a big discount ? pasting from the “registration” page: Regular registration fee is $995 but the first 100 attendees can take advantage of Super Early Bird registration and pay only $695. After that, the Early Bird registration fee is $845 and is […]

Tue, 18 Mar 2014 16:21:28 UTC

We have CppCon&

Posted By Herb Sutter

I’m really excited about this event! Note that the first 100 registrations get a big discount  pasting from the “registration” page: Regular registration fee is $995 but the first 100 attendees can take advantage of Super Early Bird registration and pay only $695. After that, the Early Bird registration fee is $845 and is […]

Mon, 17 Mar 2014 16:31:18 UTC

S&S Postscript

Posted By Herb Sutter

PS on the previous post regarding Stroustrup & Sutter: I had asked the organizers whether it would be possible to get a piano in the room. I just learned a few minutes ago that they will be able to arrange a baby grand. Sweet! This is going to be fun&Filed under: C++

Mon, 17 Mar 2014 16:23:30 UTC

Stroustrup & Sutter on C++: Mar 31  Apr 1, San Jose, CA

Posted By Herb Sutter

It has occurred to me that I never announced this event here& In two weeks, Bjarne and I will be doing a two-day Stroustrup & Sutter on C++ seminar in the San Francisco Bay area. It has been several years since the last S&S event, so Bjarne and I are really looking forward to this. […]

Wed, 19 Feb 2014 18:31:51 UTC

Reader Q&A: Is std::atomic_compare_exchange_* implementable?

Posted By Herb Sutter

Quick answer: Yes. I see there was also a thread about this on StackOverflow, so I’ll echo this Q&A publicly for others’ benefit and hopefully to dispel confusion. Duncan Forster asked: I’m quite alarmed the C++ committee chose such a bad interface for std::atomic compare_exchange, i.e.:     bool compare_exchange_???(T& expected, T desired, …);I notice you […]

Tue, 18 Feb 2014 00:52:43 UTC

Trip report: Winter ISO C++ meeting

Posted By Herb Sutter

I just posted my trip report from last week’s ISO C++ meeting over on isocpp.org. The meeting just wrapped up about 48 hours ago, on Saturday afternoon. This is a real milestone for C++. Not only did we finish C++14 (we think, assuming this coming ballot comes back clean so that we can skip the […]

Tue, 14 Jan 2014 16:55:10 UTC

GotW #96: Oversharing

Posted By Herb Sutter

Following on from #95, let’s consider reasons and methods to avoid mutable sharing in the first place&   Problem Consider the following code from GotW #95′s solution, where some_obj is a shared variable visible to multiple threads which then synchronize access to it. // thread 1{ lock_guard hold(mut_some_obj); // acquire lock code_that_reads_from( some_obj ); // […]

Mon, 13 Jan 2014 19:00:16 UTC

GotW #95 Solution: Thread Safety and Synchronization

Posted By Herb Sutter

This GotW was written to answer a set of related frequently asked questions. So here’s a mini-FAQ on “thread safety and synchronization in a nutshell,” and the points we’ll cover apply to thread safety and synchronization in pretty much any mainstream language.   Problem JG Questions 1. What is a race condition, and how serious […]

Mon, 06 Jan 2014 16:00:09 UTC

GotW #95: Thread Safety and Synchronization

Posted By Herb Sutter

This GotW was written to answer a set of related frequently asked questions. So here’s a mini-FAQ on “thread safety and synchronization in a nutshell,” and the points we’ll cover apply to thread safety and synchronization in pretty much any mainstream language.   Problem JG Questions 1. What is a race condition, and how serious […]

Mon, 06 Jan 2014 15:58:39 UTC

GotW #7c Solution: Minimizing Compile-Time Dependencies, Part 3

Posted By Herb Sutter

Now the unnecessary headers have been removed, and avoidable dependencies on the internals of the class have been eliminated. Is there any further decoupling that can be done? The answer takes us back to basic principles of solid class design.   Problem JG Question 1. What is the tightest coupling you can express in C++? […]

Tue, 31 Dec 2013 20:32:15 UTC

GotW #7c: Minimizing Compile-Time Dependencies, Part 3

Posted By Herb Sutter

Now the unnecessary headers have been removed, and avoidable dependencies on the internals of the class have been eliminated. Is there any further decoupling that can be done? The answer takes us back to basic principles of solid class design.   Problem JG Question 1. What is the tightest coupling you can express in C++? … … Continue reading →

Tue, 31 Dec 2013 20:24:37 UTC

GotW #7b Solution: Minimizing Compile-Time Dependencies, Part 2

Posted By Herb Sutter

Now that the unnecessary headers have been removed, it’s time for Phase 2: How can you limit dependencies on the internals of a class?   Problem JG Questions 1. What does private mean for a class member in C++? 2. Why does changing the private members of a type cause a recompilation? Guru Question 3. … … Continue reading →

Mon, 09 Dec 2013 19:13:55 UTC

Grace Hopper on Letterman, 1986

Posted By Herb Sutter

Google’s doodle today reminded me of Grace Hopper’s amazing contributions. I enjoyed this 10-minute video, and you might as well: Grace Hopper on Letterman in 1986 on the occasion of her (final) retirement. It’s not deep, but especially in the second half Amazing Grace demonstrates how to talk to a non-specialist audience. Good reminders for all of us who […]

Thu, 05 Dec 2013 23:31:01 UTC

Reader Q&A: Book recommendations

Posted By Herb Sutter

Vigen Isayan emailed me today to ask: What book(s) you would recommend for learning 1. design patterns, and 2. concurrency programming. Off the top of my head: 1. For Design Patterns, the greatest is still the original “Gang of Four” Design Patterns book. The design patterns are mostly universal, and the implementations happen to focus on […]

Mon, 18 Nov 2013 23:25:42 UTC

Visual C++ Compiler November 2013 CTP

Posted By Herb Sutter

We just shipped Visual C++2013 last month, but I announced at GoingNative in September that there would be more soon: another CTP (compiler preview) containing another batch of C++11/14 features, sometime in the fourth quarter. I’m happy to report that today we shipped the promised CTP. Compared to the “high probability in CTP” feature set I mentioned […]

Wed, 13 Nov 2013 22:18:04 UTC

(V)C++ recorded talks at VS 2013 Launch

Posted By Herb Sutter

As part of today’s VS 2013 launch, in addition to the live talks and Q&A we also have some recently recorded talks that are now also live. My talk is a quick 20-minute tour of the new ISO C++ conformance features in VC++ 2013 — nothing I haven’t said before, so if you’ve seen my […]

Wed, 13 Nov 2013 16:37:23 UTC

Live Visual C++ Q&A today

Posted By Herb Sutter

As part of the VS 2013 launch today, in a few hours I will be joining Tarek Madkour and Ale Contenti on camera for about half an hour to answer questions about VC++2013. Tarek and Ale are two of the three-manager triad who run our VC++ team. Visual C++ in 2013 and Beyond with Charles […]

Tue, 12 Nov 2013 19:16:40 UTC

Reminder: VC++2013 upgrade SKU available until end of January

Posted By Herb Sutter

Recap: Back in June, Microsoft: announced that were were moving to a faster cadence and shipped VS 2013 one year after VS 2012; announced that new ISO C++ conformance features from the November 2012 CTP (and more) would be available in VS 2013, but not in VS 2012 Updates; and didn’t announce pricing for VS […]

Mon, 28 Oct 2013 17:03:08 UTC

Reader Q&A: Acquire/release and sequential consistency

Posted By Herb Sutter

Reader Ernie Cohen emailed me this morning to ask a question about one slide in my atomic<> Weapons talk from last year’s C++ and Beyond: In your atomic weapons talk (part 1) (updated 2/15/2013) ,page 18, titled “Sc > Acq/Rel Alone: Some examples”, the first example listed “transitivity/causality”: T0: g = 1; x = 1; […]

Thu, 03 Oct 2013 22:20:08 UTC

Trip Report: Fall ISO C++ standards meeting

Posted By Herb Sutter

I just posted my trip report on isocpp.org. Also be sure to read the Current ISO C++ status page. We accomplished a lot last week — thanks to all the volunteers for making this a very productive and successful meeting! Just to visualize everything that’s going on, here’s a copy of the current ISO C++ […]

Fri, 20 Sep 2013 15:58:59 UTC

Bjarne and I are speaking in Chicago on Tuesday night

Posted By Herb Sutter

Bjarne Stroustrup and I are giving back-to-back talks on Tuesday night in Chicago, while we’re both in town for the standards meeting next week. Admission is free. Register by email here (and ignore the “it’s full note on the page” — see below.) Note that my talk will be 80% new material followed by the last […]

Fri, 13 Sep 2013 04:20:41 UTC

Reader Q&A: Will C++ remain indispensable&?

Posted By Herb Sutter

A reader wrote me today to ask the following. Since this is a FAQ, I thought I’d post the answer here. With the advent of C++11 and upcoming C++14 and C++1y, the language has strapped much of the digital electronics industry under its belt. High performance software, Libraries, Embedded, Research, Web backends, our everyday software, […]

Mon, 09 Sep 2013 20:40:47 UTC

My One C++ talk from GoingNative is now posted

Posted By Herb Sutter

I see the recording went live this morning. Thanks again to all the speakers and in-room and worldwide attendees for coming and watching! Day 2 Keynote: One C++ Herb Sutter My favorite part was seeing the response to the challenge to write a cool graphical interactive C++ program from scratch in 24 hours using a […]

Mon, 09 Sep 2013 20:27:58 UTC

Visual Studio 2013 RC is now available

Posted By Herb Sutter

At Build in June, we announced that VC++ 2013 RTM “later this year” would include the ISO conformance features in the June preview (explicit conversion operators, raw string literals, function template default arguments, delegating constructors, uniform initialization and initializer_lists, and variadic templates) plus also several more to be added between the Preview and the RTM: […]

Wed, 04 Sep 2013 16:25:39 UTC

Tomorrow

Posted By Herb Sutter

You will want to watch Chandler Carruth’s talk tomorrow at GoingNative. It will be livestreamed here starting at 2:30pm North American Pacific time. (See timeanddate.com for other time zones.) Watch for the Ghostbusters reference. That is all. Filed under: Uncategorized

Tue, 03 Sep 2013 16:17:25 UTC

Livestreamed talk at GoingNative this week: One C++

Posted By Herb Sutter

Don’t forget that the year’s great C++-fest GoingNative 2013 starts tomorrow morning and will be livestreamed on the Channel 9 home page. Don’t miss the opening keynote by Bjarne Stroustrup at 9:00am Seattle time on Wednesday. It will be followed by many other insightful and enlightening talks, from many of the gurus of C++. The […]

Mon, 19 Aug 2013 10:33:12 UTC

GotW #7b: Minimizing Compile-Time Dependencies, Part 2

Posted By Herb Sutter

Now that the unnecessary headers have been removed, it’s time for Phase 2: How can you limit dependencies on the internals of a class? Problem JG Questions 1. What does private mean for a class member in C++? 2. Why does changing the private members of a type cause a recompilation? Guru Question 3. Below […]

Mon, 19 Aug 2013 10:31:39 UTC

GotW #7a Solution: Minimizing Compile-Time Dependencies, Part 1

Posted By Herb Sutter

Managing dependencies well is an essential part of writing solid code. C++ supports two powerful methods of abstraction: object-oriented programming and generic programming. Both of these are fundamentally tools to help manage dependencies, and therefore manage complexity. It’s telling that all of the common OO/generic buzzwordsincluding encapsulation, polymorphism, and type independencealong with most design patterns, […]

Tue, 13 Aug 2013 15:35:00 UTC

Comment delays and spam

Posted By Herb Sutter

In recent months, more comment spam has been getting through. To deal with it, I’ve had to tighten up and hold more comments for moderation, which means some comments may be delayed in appearing until I manually approve them. Also, I’ve noticed that WordPress seems to have similarly tightened their settings for auto-identifying spam that […]

Mon, 12 Aug 2013 22:53:30 UTC

GotW #7a: Minimizing Compile-Time Dependencies, Part 1

Posted By Herb Sutter

GotW #7a: Minimizing Compile-Time Dependencies, Part 1 Managing dependencies well is an essential part of writing solid code. C++ supports two powerful methods of abstraction: object-oriented programming and generic programming. Both of these are fundamentally tools to help manage dependencies, and therefore manage complexity. It’s telling that all of the common OO/generic buzzwordsincluding encapsulation, polymorphism, […]

Mon, 12 Aug 2013 19:42:37 UTC

GotW #94 Solution: AAA Style (Almost Always Auto)

Posted By Herb Sutter

Toward correct-by-default, efficient-by-default, and pitfall-free-by-default variable declarations, using “AAA style”& where “triple-A” is both a mnemonic and an evaluation of its value.   Problem JG Questions 1. What does this code do? What would be a good name for some_function? template<class Container, class Value>void some_function( Container& c, const Value& v ) { if( find(begin(c), end(c), […]

Tue, 09 Jul 2013 16:47:02 UTC

Recommended reading: Why mobile web apps are slow (Drew Crawford)

Posted By Herb Sutter

I don’t often link to other articles, but this one is worth reading. Why mobile web apps are slow by Drew Crawford & So if you are trying to figure out exactly what brand of crazy all your native developer friends are on for continuing to write the evil native applications on the cusp of […]

Wed, 26 Jun 2013 16:30:08 UTC

My //build/ talk on Friday @ noon PDT (webcast)

Posted By Herb Sutter

The session schedule for this week’s //build/ conference in San Francisco has now been posted. I have a talk on Friday at noon Pacific time, titled “The Future of C++.” Note this is a Microsoft conference, so the talk is specifically about the future of the Visual C++ product, but nevertheless it’s all about Standard […]

Fri, 14 Jun 2013 02:27:13 UTC

GotW #94 Special Edition: AAA Style (Almost Always Auto)

Posted By Herb Sutter

Toward correct-by-default, efficient-by-default, and pitfall-free-by-default variable declarations, using “AAA style”& where “triple-A” is both a mnemonic and an evaluation of its value.   Problem JG Questions 1. What does this code do? What would be a good name for some_function? template<class Container, class Value>void some_function( Container& c, const Value& v ) { if( find(begin(c), end(c), […]

Fri, 14 Jun 2013 00:10:19 UTC

GotW #93 Solution: Auto Variables, Part 2

Posted By Herb Sutter

Why prefer declaring variables using auto? Let us count some of the reasons why&   Problem JG Question 1. In the following code, what actual or potential pitfalls exist in each labeled piece of code? Which of these pitfalls would using auto variable declarations fix, and why or why not? // (a)void traverser( const vector<int>& […]

Fri, 07 Jun 2013 14:06:54 UTC

GotW #93: Auto Variables, Part 2

Posted By Herb Sutter

Why prefer declaring variables using auto? Let us count some of the reasons why&   Problem JG Question 1. In the following code, what actual or potential pitfalls exist in each labeled piece of code? Which of these pitfalls would using auto variable declarations fix, and why or why not? // (a)void traverser( const vector<int>& […]

Fri, 07 Jun 2013 13:34:05 UTC

GotW #92 Solution: Auto Variables, Part 1

Posted By Herb Sutter

What does auto do on variable declarations, exactly? And how should we think about auto? In this GotW, we’ll start taking a look at C++’s oldest new feature.   Problem JG Questions 1. What is the oldest C++11 feature? Explain. 2. What does auto mean when declaring a local variable? Guru Questions 3. In the […]

Wed, 05 Jun 2013 14:56:44 UTC

GotW #92: Auto Variables, Part 1

Posted By Herb Sutter

What does auto do on variable declarations, exactly? And how should we think about auto? In this GotW, we’ll start taking a look at C++’s oldest new feature.   Problem JG Questions 1. What is the oldest C++11 feature? Explain. 2. What does auto mean when declaring a local variable? Guru Questions 3. In the […]

Wed, 05 Jun 2013 14:42:12 UTC

GotW #91 Solution: Smart Pointer Parameters

Posted By Herb Sutter

NOTE: Last year, I posted three new GotWs numbered #103-105. I decided leaving a gap in the numbers wasn’t best after all, so I am renumbering them to #89-91 to continue the sequence. Here is the updated version of what was GotW #105.   How should you prefer to pass smart pointers, and why?   […]

Thu, 30 May 2013 23:12:42 UTC

GotW #91: Smart Pointer Parameters

Posted By Herb Sutter

NOTE: Last year, I posted three new GotWs numbered #103-105. I decided leaving a gap in the numbers wasn’t best after all, so I am renumbering them to #89-91 to continue the sequence. Here is the updated version of what was GotW #105.   How should you prefer to pass smart pointers, and why?   […]

Thu, 30 May 2013 23:04:45 UTC

GotW #90 Solution: Factories

Posted By Herb Sutter

NOTE: Last year, I posted three new GotWs numbered #103-105. I decided leaving a gap in the numbers wasn’t best after all, so I am renumbering them to #89-91 to continue the sequence. Here is the updated version of what was GotW #104.   What should factory functions return, and why?   Problem While spelunking […]

Wed, 29 May 2013 18:54:21 UTC

GotW #90: Factories

Posted By Herb Sutter

NOTE: Last year, I posted three new GotWs numbered #103-105. I decided leaving a gap in the numbers wasn’t best after all, so I am renumbering them to #89-91 to continue the sequence. Here is the updated version of what was GotW #104.   What should factory functions return, and why?   Problem While spelunking […]

Wed, 29 May 2013 18:49:21 UTC

GotW #89 Solution: Smart Pointers

Posted By Herb Sutter

NOTE: Last year, I posted three new GotWs numbered #103-105. I decided leaving a gap in the numbers wasn’t best after all, so I am renumbering them to #89-91 to continue the sequence. Here is the updated version of what was GotW #103.   There’s a lot to love about standard smart pointers in general, […]

Wed, 29 May 2013 00:08:38 UTC

GotW #89: Smart Pointers

Posted By Herb Sutter

NOTE: Last year, I posted three new GotWs numbered #103-105. I decided leaving a gap in the numbers wasn’t best after all, so I am renumbering them to #89-91 to continue the sequence. Here is the updated version of what was GotW #103.   There’s a lot to love about standard smart pointers in general, […]

Wed, 29 May 2013 00:05:43 UTC

GotW #6b Solution: Const-Correctness, Part 2

Posted By Herb Sutter

const and mutable are powerful tools for writing safer code. Use them consistently. Problem Guru Question In the following code, add or remove const (including minor variants and related keywords) wherever appropriate. Note: Don’t comment on or change the structure of this program. It’s contrived and condensed for illustration only. For bonus points: In what […]

Sun, 26 May 2013 00:20:46 UTC

C++ and Beyond: My material for December, and early-bird registration (through June 9)

Posted By Herb Sutter

If you’re thinking of coming to C++ and Beyond this December, consider registering in the next two weeks to get the $300 discount. I’ve just announced that much (and possibly all) of my material will be in heavily interactive sessions about modern C++11/C++14 style and idioms, covering the “complete C++11 package” that we’re calling C++14. […]

Fri, 24 May 2013 19:25:48 UTC

Lost two comments

Posted By Herb Sutter

As mentioned in my GotW kickoff post, I’m experimenting with software and a workflow that lets me maintain a single source document and use it to produce the work in multiple targets, in particular to post to the blog here, to produce print books, and to produce e-books. However, there have been kinks. In particular, […]

Fri, 24 May 2013 15:46:41 UTC

GotW #6a: Const-Correctness, Part 1

Posted By Herb Sutter

const and mutable have been in C++ for many years. How well do you know what they mean today?   Problem JG Question 1. What is a “shared variable”? Guru Questions 2. What do const and mutable mean on shared variables? 3. How are const and mutable different in C++98 and C++11?   Solution 1. […]

Fri, 24 May 2013 15:46:24 UTC

GotW #6a: Const-Correctness, Part 1

Posted By Herb Sutter

const and mutable have been in C++ for many years. How well do you know what they mean today?   Problem JG Question 1. What is meant by a “shared variable”? Guru Questions 2. What do const and mutable mean on shared variables? 3. How are const and mutable different in C++98 and C++11?   […]

Fri, 24 May 2013 15:43:05 UTC

GotW #6b: Const-Correctness, Part 2

Posted By Herb Sutter

const and mutable are powerful tools for writing safer code. Use them consistently. Problem Guru Question In the following code, add or remove const (including minor variants and related keywords) wherever appropriate. Note: Don’t comment on or change the structure of this program. It’s contrived and condensed for illustration only. For bonus points: In what […]

Fri, 24 May 2013 15:40:37 UTC

GotW #6a: Const-Correctness, Part 1

Posted By Herb Sutter

const and mutable have been in C++ for many years. How well do you know what they mean today?   Problem JG Question 1. What is a “shared variable”? Guru Questions 2. What do const and mutable mean on shared variables? 3. How are const and mutable different in C++98 and C++11?   Solution 1. […]

Wed, 22 May 2013 19:06:49 UTC

GotW #6a: Const-Correctness, Part 1

Posted By Herb Sutter

const and mutable have been in C++ for many years. How well do you know what they mean today?   Problem JG Question 1. What is a “shared variable”? Guru Questions 2. What do const and mutable mean on shared variables? 3. How are const and mutable different in C++98 and C++11? Filed under: GotW

Wed, 22 May 2013 19:06:19 UTC

GotW #5 Solution: Overriding Virtual Functions

Posted By Herb Sutter

Virtual functions are a pretty basic feature, but they occasionally harbor subtleties that trap the unwary. If you can answer questions like this one, then you know virtual functions cold, and you’re less likely to waste a lot of time debugging problems like the ones illustrated below.   Problem JG Question 1. What do the […]

Mon, 20 May 2013 18:27:25 UTC

GotW #5: Overriding Virtual Functions

Posted By Herb Sutter

Virtual functions are a pretty basic feature, but they occasionally harbor subtleties that trap the unwary. If you can answer questions like this one, then you know virtual functions cold, and you’re less likely to waste a lot of time debugging problems like the ones illustrated below.   Problem JG Question 1. What do the […]

Mon, 20 May 2013 18:22:22 UTC

GotW #4 Solution: Class Mechanics

Posted By Herb Sutter

How good are you at the details of writing classes? This item focuses not only on blatant errors, but even more so on professional style. Understanding these principles will help you to design classes that are easier to use and easier to maintain.   Problem JG Question 1. What makes interfaces “easy to use correctly, […]

Thu, 16 May 2013 20:09:32 UTC

GotW #4: Class Mechanics (7/10)

Posted By Herb Sutter

How good are you at the details of writing classes? This item focuses not only on blatant errors, but even more so on professional style. Understanding these principles will help you to design classes that are easier to use and easier to maintain.   Problem JG Question 1. What makes interfaces “easy to use correctly, […]

Thu, 16 May 2013 19:58:23 UTC

GotW #3 Solution: Using the Standard Library (or, Temporaries Revisited)

Posted By Herb Sutter

Effective reuse is an important part of good software engineering. To demonstrate how much better off you can be by using standard library algorithms instead of handcrafting your own, let’s reconsider the previous question to demonstrate how many of the problems could have been avoided by simply reusing what’s already available in the standard library. […]

Mon, 13 May 2013 12:31:55 UTC

GotW #3: Using the Standard Library (or, Temporaries Revisited) (3/10)

Posted By Herb Sutter

Effective reuse is an important part of good software engineering. To demonstrate how much better off you can be by using standard library algorithms instead of handcrafting your own, let’s reconsider the previous question to demonstrate how many of the problems could have been avoided by simply reusing what’s already available in the standard library. […]

Mon, 13 May 2013 12:30:54 UTC

GotW #2 Solution: Temporary Objects

Posted By Herb Sutter

Unnecessary and/or temporary objects are frequent culprits that can throw all your hard work  and your program’s performance  right out the window. How can you spot them and avoid them?   Problem JG Question 1. What is a temporary object? Guru Question 2. You are doing a code review. A programmer has written […]

Thu, 09 May 2013 16:42:09 UTC

GotW #2: Temporary Objects (5/10)

Posted By Herb Sutter

Unnecessary and/or temporary objects are frequent culprits that can throw all your hard work  and your program’s performance  right out the window. How can you spot them and avoid them?   Problem JG Question 1. What is a temporary object? Guru Question 2. You are doing a code review. A programmer has written […]

Thu, 09 May 2013 16:30:01 UTC

GotW #1 Solution: Variable Initialization  or Is It? (3/10)

Posted By Herb Sutter

This first problem highlights the importance of understanding what you write. Here we have a few simple lines of codemost of which mean something different from all the others, even though the syntax varies only slightly.   Problem JG Question 1. What is the difference, if any, among the following? widget w; // (a)widget w(); […]

Mon, 06 May 2013 08:26:40 UTC

GotW #1: Variable Initializationor Is It? (3/10)

Posted By Herb Sutter

This first problem highlights the importance of understanding what you write. Here we have a few simple lines of code  most of which mean something different from all the others, even though the syntax varies only slightly.   Problem JG Question 1. What is the difference, if any, among the following? widget w; // [...]

Sat, 04 May 2013 19:58:26 UTC

Guru of the Week and the Exceptional C++ Series

Posted By Herb Sutter

Its time for me to pick up Guru of the Week (GotW) again in earnest, as part of work on revising my three Exceptional C++ books for todays C++. Most Exceptional C++ Items are enhanced versions of GotW issues, after all, so the simplest and best place to start is with GotW. Its also much [...]

Sun, 28 Apr 2013 19:58:26 UTC

Guru of the Week and the Exceptional C++ Series

Posted By Herb Sutter

Its time for me to pick up Guru of the Week (GotW) again in earnest, as part of work on revising my three Exceptional C++ books for todays C++. Most Exceptional C++ Items are enhanced versions of GotW issues, after all, so the simplest and best place to start is with GotW. Its also much [...]

Sat, 20 Apr 2013 19:40:30 UTC

Trip Report: ISO C++ Spring 2013 Meeting

Posted By Herb Sutter

The Bristol meeting concluded a few hours ago, and I just posted my trip report on isocpp.org: This afternoon in Bristol, UK, the ISO C++ standards committee adopted generic lambdas, dynamic arrays (an improved version of C99 VLAs), variable templates, reader/writer locks, make_unique, optional<T>, standard library user-defined literals, and a number of other language and [...]

Fri, 05 Apr 2013 18:12:28 UTC

Complex initialization for a const variable

Posted By Herb Sutter

On std-discussion, Shakti Misra asked: I have seen in a lot of places code like int i; if(someConditionIstrue) { Do some operations and calculate the value of i; i = some calculated value; } use i; //Note this value is only used not changed. It should not be changed. But unfortunately in this case there [...]

Thu, 14 Mar 2013 15:50:07 UTC

Words of wisdom: Bjarne Stroustrup

Posted By Herb Sutter

Bjarne Stroustrup wrote the following a few minutes ago on the concepts mailing list: Let me take this opportunity to remind people that "being able to do something is not sufficient reason for doing it" and "being able to do every trick is not a feature but a bug" For the latter, remember Dijkstra’s famous [...]

Mon, 11 Feb 2013 18:31:42 UTC

atomic Weapons: The C++ Memory Model and Modern Hardware

Posted By Herb Sutter

Most of the talks I gave at C++ and Beyond 2012 last summer are already online at Channel 9. Here are two more. This is a two-part talk that covers the C++ memory model, how locks and atomics and fences interact and map to hardware, and more. Even though we’re talking about C++, much of [...]

Wed, 16 Jan 2013 00:20:29 UTC

Videos: Panel, and C++ Concurrency

Posted By Herb Sutter

Im about two weeks late posting this, but two more C++ and Beyond 2012 videos are now available online. The first is my 30-min concurrency talk: C++ and Beyond 2012: C++ Concurrency (Herb Sutter) Ive spoken and written on these topics before. Heres whats different about this talk: Brand new: This material goes beyond what [...]

Wed, 16 Jan 2013 00:08:30 UTC

Java vulnerabilities

Posted By Herb Sutter

With the help of friends Robert Seacord and David Svoboda of CERT in particular, I posted a note and link to their CERT post today because people have been misunderstanding the recent Java vulnerabilities, thinking theyre somehow really C or C++ vulnerabilities because Java is implemented in C and C++. From the post: Are the [...]

Tue, 01 Jan 2013 17:34:09 UTC

Video: You Dont Know const and mutable

Posted By Herb Sutter

At C++ and Beyond in August, I gave a 30 min talk on the changed meaning of const and mutable. The talk video is now online: You Dont Know [keyword] and [keyword] const means const. Bonus: mutable is useful and continues to mean already as good as const. This is another way C++ has become [...]

Fri, 21 Dec 2012 02:04:33 UTC

An implementation of generic lambdas is now available

Posted By Herb Sutter

For those interested in C++ standardization and not already following along at isocpp.org, here’s an item of likely interest: An implementation of generic lambdas (request for feedback)Faisal Vali This week, Faisal Vali shared an initial “alpha” implementation of generic lambdas in Clang. Faisal is the lead author of the proposal (N3418), with Herb Sutter and [...]

Tue, 04 Dec 2012 18:06:54 UTC

Compatibility

Posted By Herb Sutter

On yesterdays thread, I just wrote in a comment: @Jon: Yes, C++ is complex and the complexity is largely because of C compatibility. I agree with Bjarne that theres a small language struggling to get out  Ive participated in private experiments to specify such a language, and you can do it in well under [...]

Mon, 03 Dec 2012 21:34:30 UTC

Perspective: Why C++ Is Not Back

Posted By Herb Sutter

John Sonmez wrote a nice article on the weekend  both the article and the comments are worth reading. Why C++ Is Not Back by John Sonmez I love C++. [&] There are plenty of excellent developers I know today that still use C++ and teach others how to use it and there is nothing [...]

Sat, 01 Dec 2012 02:12:29 UTC

256 cores by 2013?

Posted By Herb Sutter

I just saw a tweet thats worth commenting on: Almost right, and we have already reached that. I said something similar to the above, but with two important differences: I said hardware threads, not only hardware cores  it was about the amount of hardware parallelism available on a mainstream system. What I gave was [...]

Sun, 25 Nov 2012 00:20:02 UTC

Podcast: Interview on Hanselminutes

Posted By Herb Sutter

A few weeks ago at the Build conference, Scott Hanselman and I sat down to talk about C++ and modern UI/UX. The podcast is now live here: The Hanselminutes Podcast, Show #346 Why C++ with Herb Sutter Topics Scott raises include: 2:00 Scott mentions he has used C++ in the past. C++ has changed. We [...]

Tue, 20 Nov 2012 17:26:22 UTC

Reader Q&A: A good book to learn C++11?

Posted By Herb Sutter

Last night a reader asked one of the questions that helped motivate the creation of isocpp.org: I am trying to learn the new C++. I am wondering if you are aware of resources or courses that can help me learn a little. I was not able to find any books for C++11. Any help would [...]

Tue, 06 Nov 2012 21:11:12 UTC

Fridays Q&A session now online

Posted By Herb Sutter

My live Q&A after Fridays The Future of C++ talk is now online on Channel 9. The topics revolved around& & recent progress and near-future directions for C++, both at Microsoft and across the industry, and talks about some announcements related to C++11 support in VC++ 2012 and the formation of the Standard C++ Foundation. [...]

Sat, 03 Nov 2012 23:12:50 UTC

Our industry is young again, and its all about UI

Posted By Herb Sutter

Jeff Atwoods post two days ago inspired me to write this down. Thanks, Jeff. I can’t even remember the last time I was this excited about a computer.  Jeff Atwood, November 1, 2012 Our industry is young again, full of the bliss and sense of wonder and promise of adventure that comes with youth. [...]

Sat, 03 Nov 2012 22:06:31 UTC

Talk now online: The Future of C++ (VC++, ISO C++)

Posted By Herb Sutter

Yesterday, many thousands of you were in the room or live online for my talk on The Future of C++. The talk is now available online. This has been a phenomenal year for C++, since C++11s publication just 12 months ago. And yesterday was a great day for C++. Yesterday I had the privilege of [...]

Wed, 31 Oct 2012 21:56:58 UTC

90 seconds @Build: Its a great week for C++

Posted By Herb Sutter

A few hours ago I sat down to give a short teaser for my webcast talk this Friday. Here it is. Feel free to forward. (I dont think they believed me when I said I could keep it to under two minutes.) Filed under: C++, Microsoft, Software Development, Talks & Events

Mon, 29 Oct 2012 16:35:29 UTC

The Future of C++: Live broadcast this Friday

Posted By Herb Sutter

In my talk on Friday, there will be announcements of broad interest to C++ developers on all compilers and platforms. Please help spread the word. The Future of C++ Friday, November 2, 2012 12:45pm (U.S. Pacific Time) This talk will give an update on recent progress and near-future directions for C++, both at Microsoft and [...]

Tue, 16 Oct 2012 15:53:44 UTC

Reader Q&A: volatile (again)

Posted By Herb Sutter

Sarmad Asgher asked a variant of a perennial question: I am implementing multi producer single consumer problem. I have shared variables like m_currentRecordsetSize which tells the current size of the buffer. I am using m_currentRecordsetSize in a critical section do i need to declare it as volatile. If youre in C or C++, and the [...]

Tue, 09 Oct 2012 16:59:14 UTC

CTP of Windows XP Targeting with C++ in Visual Studio 2012

Posted By Herb Sutter

The three by-far-most-requested missing features from Visual C++ 2012 were: Conformance: Keep adding more C++11 language conformance features. XP Targeting: Deliver the ability to build applications that could run on Windows XP, as well as Windows Vista, 7, and 8. Desktop Express: Deliver a free VC++ Express compiler that can be used to create traditional [...]

Wed, 03 Oct 2012 16:01:58 UTC

Poll: What features would you like to see added soonest in your favorite C++ compiler?

Posted By Herb Sutter

I just got back from teaching a class, and I’m always amazed at the breadth and diversity of C++ developers. As Bjarne Stroustrup famously says: “No one knows ‘what most C++ developers do.’” In particular, I’m surprised at how strongly some people feel about certain features, such as refactoring or safety or raw performance or [...]

Wed, 19 Sep 2012 22:05:06 UTC

Casablanca: C++ on Azure

Posted By Herb Sutter

Ive blogged about Casablanca before. Heres a related talk from TechEd Australia: Casablanca is a Microsoft incubation effort to support cloud-based client-server communication in native code using a modern asynchronous C++ API design. Think of it as Node.js, but using C++  from simple services, to JSON and REST, to Azure storage and deployment, and [...]

Tue, 18 Sep 2012 20:53:01 UTC

C&B 2012 panel posted: Ask Us Anything!

Posted By Herb Sutter

The second panel from C++ and Beyond 2012 is now available on Channel 9: Alexandrescu, Meyers and Sutter – Ask Us Anything Here is the Ask Us Anything panel from C++ and Beyond 2012. Andrei Alexandrescu, Scott Meyers and Herb Sutter take questions from attendees. As expected, great questions and answers& Table of contents (click [...]

Wed, 12 Sep 2012 19:00:39 UTC

VC++ 2012 Desktop Expres (Free)

Posted By Herb Sutter

  Today Microsoft released another free Express version of Visual C++ 2012. In addition to the free Express Visual C++ compiler for building tablet applications, Visual Studio Express 2012 for Windows Desktop directly supports traditional Windows and command-line applications in C++. This a great free C++ compiler on Windows for everything from hobby development to [...]

Sat, 01 Sep 2012 00:43:58 UTC

Reader Q&A: How to write a CAS loop using std::atomics

Posted By Herb Sutter

The following is not intended to be a complete treatise on atomics, but just an answer to a specific question. A colleague asked: How should one write the following conditional interlocked function in the new C++ atomic<> style? // if (*plValue >= 0) *plValue += lAdd  ; return the original value LONG MpInterlockedAddNonNegative(__inout LONG volatile* [...]

Tue, 21 Aug 2012 15:10:26 UTC

C&B Panel: Alexandrescu, Meyers, Sutter on Static If, C++11, and Metaprogramming

Posted By Herb Sutter

The first panel from C++ and Beyond 2012 is now available on Channel 9: On Static If, C++11 in 2012, Modern Libraries, and Metaprogramming Andrei Alexandrescu, Scott Meyers, Herb Sutter Channel 9 was invited to this year’s C++ and Beyond to film some sessions (that will appear on C9 over the coming months!)… At the [...]

Thu, 02 Aug 2012 11:26:37 UTC

Strong and weak hardware memory models

Posted By Herb Sutter

In Welcome to the Jungle, I predicted that weak hardware memory models will disappear. This is true, and its happening before our eyes: x86 has always been considered a strong hardware memory model that supports sequentially consistent atomics efficiently. The other major architecture, ARM, recently announced that they are now adding strong memory ordering in [...]

Mon, 30 Jul 2012 15:11:46 UTC

Late-Breaking C&B Session: A Special Announcement

Posted By Herb Sutter

At the end of the Monday afternoon session, I will be making a special announcement related to Standard C++ on all platforms. Be there to hear the details, and to receive an extra perk thats being reserved for C&B 2012 attendees only. Note: We sometimes record sessions and make them freely available online via Channel [...]

Fri, 29 Jun 2012 19:41:39 UTC

C&B Session: atomic<> Weapons  The C++11 Memory Model and Modern Hardware

Posted By Herb Sutter

Heres another deep session for C&B 2012 on August 5-8  if you havent registered yet, register soon. We got a bigger venue this time, but as I write this the event is currently almost 75% full with five weeks to go. I know, Ive already posted three sessions and a panel. But theres just [...]

Thu, 21 Jun 2012 20:58:35 UTC

Reader Q&A: Why dont modern smart pointers implicitly convert to *?

Posted By Herb Sutter

Today a reader asked a common question: Why doesn’t unique_ptr (and the ilk) appear to have an operator overload somewhat as follows: operator T*() { return get(); }; The reason I ask is because we have reams of old code wanting raw pointers (as function parms), and I would like to replace the outer layers [...]

Thu, 21 Jun 2012 20:40:10 UTC

Talk Video: Welcome to the Jungle (60 min version + Q&A)

Posted By Herb Sutter

While visiting Facebook earlier this month, I gave a shorter version of my Welcome to the Jungle talk, based on the eponymous WttJ article. They made a nice recording and its now available online here: Facebook Engineering Title: Herb Sutter: Welcome to the Jungle In the twilight of Moore’s Law, the transitions to multicore processors, [...]

Tue, 05 Jun 2012 19:10:01 UTC

GotW #105: Smart Pointers, Part 3 (Difficulty: 7/10)

Posted By Herb Sutter

JG Question 1. What are the performance and correctness implications of the following function declaration? Explain.   Guru Question 2. A colleague is writing a function f that takes an existing object of type widget as a required input-only parameter, and trying to decide among the following basic ways to take the parameter (omitting const): [...]

Tue, 05 Jun 2012 19:03:20 UTC

GotW #104: Solution

Posted By Herb Sutter

The solution to GotW #104 is now live. Filed under: C++, GotW

Sun, 03 Jun 2012 04:57:24 UTC

Facebook Folly  OSS C++ Libraries

Posted By Herb Sutter

Ive been beating the drum this year that the biggest problem facing C++ today is the lack of a large set of de jure and de facto standard libraries. My team at Microsoft just recently announced Casablanca, a cloud-oriented C++ library and that we intend to open source, and were making other even bigger efforts [...]

Fri, 01 Jun 2012 23:04:27 UTC

Were hiring (again & more)

Posted By Herb Sutter

The Visual C++ team is looking for a number of people to do work on C++11, parallelizing/vectorizing, cloud, libraries, and more. All I can say is that theres a lot of cool stuff in the pipeline that directly addresses real needs, including things people regularly comment on this blog about that I cant answer specifically [...]

Tue, 29 May 2012 00:09:27 UTC

Two Sessions: C++ Concurrency and Parallelism  2012 State of the Art (and Standard)

Posted By Herb Sutter

Its time for, not one, but two brand-new, up-to-date talks on the state of the art of concurrency and parallelism in C++. Im going to put them together especially and only for C++ and Beyond 2012, and Ill be giving them nowhere else this year: C++ Concurrency  2012 State of the Art (and Standard) [...]

Thu, 17 May 2012 17:06:03 UTC

VC++ and Win8 Metro apps: May 18, livestream and on-demand

Posted By Herb Sutter

Reblogged from Sutters Mill: Want to know how to write cool tablet apps using Visual C++? On May 18, Microsoft is hosting a one-day free technical event for developers who want to write Metro apps for Windows 8 using Visual C++. Im giving the opening talk, and the rest of the day is full of [...]

Mon, 07 May 2012 14:42:14 UTC

VC++ and Win8 Metro apps: May 18, livestream and on-demand

Posted By Herb Sutter

Want to know how to write cool tablet apps using Visual C++? On May 18, Microsoft is hosting a one-day free technical event for developers who want to write Metro apps for Windows 8 using Visual C++. Im giving the opening talk, and the rest of the day is full of useful technical information on [...]

Fri, 04 May 2012 23:16:20 UTC

Looking for compiler engineers

Posted By Herb Sutter

Are you a compiler engineer or know one, and looking for interesting work on a top-notch team? Were hiring. (That particular link says two openings, but there are more.) Filed under: C++, Microsoft

Thu, 03 May 2012 17:53:28 UTC

Reader Q&A: What about VC++ and C99?

Posted By Herb Sutter

I occasionally get asked about whether, or how well, Visual C++ supports C99. This week, I just posted two replies to this questions on UserVoice (merged below). Last fall, I also answered it in an interview with Dr. Dobbs (recommended for some rationale discussion). The short answer is that Visual C++s focus is to support [...]

Mon, 30 Apr 2012 23:19:59 UTC

C++ Libraries: Casablanca

Posted By Herb Sutter

At GoingNative in February, I emphasized the need for more modern and portable C++ libraries, including for things like RESTful web/cloud services, HTTP, JSON, and more. The goal is to find or develop modern C++ libraries that leverage C++11 features, and then submit the best for standardization. Microsoft wants to do its part, and heres [...]

Mon, 30 Apr 2012 21:59:18 UTC

Worlds youngest C++ programmer?

Posted By Herb Sutter

Im seeing many younger programmers picking up C++. The average age at C++ events over the past year has been declining rapidly as the audience sizes grow with more and younger people in addition to the C++ veterans. But this one just beats all [Facebook link added]: A six-year-old child from Bangladesh is hoping to [...]

Mon, 30 Apr 2012 21:36:26 UTC

C++ and Beyond Panel: Modern C++ = Clean, Safe, and Faster Than Ever

Posted By Herb Sutter

I just posted the following panel announcement to the C++ and Beyond site. The three-day event (plus evening-before reception) with me, Scott Meyers, and Andrei Alexandrescu will be held on August 5-8, and early-bird registration is open until May 31.   C++11 is kind of like C++ Dreamliner. Its built with world-class modern materials. It [...]

Tue, 24 Apr 2012 22:13:37 UTC

Mobile vs. PC?

Posted By Herb Sutter

In answering a reader question about Flash today, I linked to Adobes November press release and I commented: Granted, Adobe says its abandoning Flash only for new mobile device browsers while still supporting it for PC browsers. This is still a painful statement because [in part] & the distinction between mobile devices and PCs is [...]

Tue, 24 Apr 2012 21:30:01 UTC

Reader Q&A: Flash Redux

Posted By Herb Sutter

David Braun asked: @Tom @Herb: Whats so wrong with flash that it should be boycotted? Have I been being abused by it in some way Im not aware of? Also,does HTML5 have any bearing on the subject? Im not saying it should be boycotted, only that I avoid it. Here’s what I wrote two years [...]

Mon, 23 Apr 2012 15:31:58 UTC

Talk Video: Welcome to the Jungle

Posted By Herb Sutter

Last month in Kansas City I gave a talk on “Welcome to the Jungle,” based on my recent essay of the same name (sequel to “The Free Lunch Is Over”) concerning the turn to mainstream heterogeneous distributed computing and the end of Moores Law. Perceptive Software has now made the talk available online: Welcome to the Jungle In the [...]

Sun, 22 Apr 2012 01:17:32 UTC

GotW #104: Smart Pointers, Part 2 (Difficulty: 5/10)

Posted By Herb Sutter

While spelunking through the code of a new project you recently joined, you find the following factory function declaration:   JG Question 1. Whats wrong with this return type?   Guru Questions 2. What is the recommended return type? Explain your answer, including any tradeoffs. 3. Youd like to actually change the return type to [...]

Sun, 22 Apr 2012 01:05:35 UTC

GotW #103: Solution

Posted By Herb Sutter

The solution to GotW #103 is now live. Filed under: C++, GotW

Fri, 20 Apr 2012 06:26:00 UTC

Steve Jobs on Programmers (via Brent Schlender)

Posted By Herb Sutter

Earlier this week, Brent Schlender published selected Steve Jobs quote highlights from his interview tape archives. Heres one about us: The difference between the best worker on computer hardware and the average may be 2 to 1, if you’re lucky. With automobiles, maybe 2 to 1. But in software, it’s at least 25 to 1. [...]

Fri, 13 Apr 2012 01:23:12 UTC

Talk + panel online: (Not Your Fathers) C++ + Native Languages Panel

Posted By Herb Sutter

Last week at the Lang.NEXT 2012 conference in Redmond, I gave a 40-minute C++ talk and participated on a native languages panel. Both are now online at Channel 9. Heres the 40-min C++ talk, taken from the C9 site: (Not Your Fathers) C++ Herb Sutter  What makes ISO C++11 "feel like a new language"? What [...]

Thu, 12 Apr 2012 12:43:29 UTC

What languages are used to build what software?

Posted By Herb Sutter

I’ve been meaning to post a link to Vincent Lextrait’s nice (and actively maintained) catalog of what languages are used to build what modern and major mainstream software: The Programming Languages Beacon This table contains a list of major software products or utilities, with details about the programming languages used to implement them. Information on [...]

Sat, 07 Apr 2012 06:13:01 UTC

We want await! A C# talk thats applicable to C++

Posted By Herb Sutter

A nice talk by Mads Torgersen just went live on Channel 9 about C#s non-blocking Task<T>.ContinueWith() library feature and await language feature, which are a big hit in C# (and Visual Basic) for writing highly concurrent code that looks pretty much just like sequential code. Mads is one of the designers of await. If youre [...]

Fri, 06 Apr 2012 23:07:00 UTC

The Of Course Principle of Design

Posted By Herb Sutter

Nicely put: Most companies (including web startups), he said, are looking to wow with their products, when in reality what they should be looking for is an of course reaction from their users. Simple and obvious beats flashy. So many great designs are obvious in retrospect. Hat tip to John Gruber. Filed under: Friday Thoughts

Thu, 05 Apr 2012 20:45:59 UTC

Reader Q&A: What does it mean for [[attributes]] to affect language semantics?

Posted By Herb Sutter

Followup on this earlier question, @bilbothegravatar asked: @Alf, @Herb  I dont quite get the [[noreturn]] example. While it may (not) compile on VC++, (as far as I understand) it does not carry any semantic meaning, and, whats more, it is *perfectly* safe for any compiler that sees [[noreturn]] to just ignore it  the [...]

Tue, 03 Apr 2012 23:53:03 UTC

Reader Q&A:

Posted By Herb Sutter

Motti asked: While youre dealing with readers Qs&. In your keynote in Going Native you mentioned that type inference should almost always be used, except for some obscure cases with expression templates. Yes. To give people context, the idea is when declaring local variables, prefer to use auto to deduce the type. For example: This [...]

Tue, 03 Apr 2012 01:15:27 UTC

Reader Q&A: When will better JITs save managed code?

Posted By Herb Sutter

In the comments on last weeks interview, MichaelTK asked: @Herb: You mentioned two things I dont fully understand in your talk. 1) Why would C++ be a better choice for very large scale applications than NET/Java? I mean the zero abstraction penalty (which is more a JIT compiler issue and not intrinsically hardwired into C#) [...]

Tue, 03 Apr 2012 00:45:14 UTC

Reader Q&A: Keywords and Attributes

Posted By Herb Sutter

Referring to C++ AMP, a reader emailed me to ask: Are you going to replace restrict keyword with new C++11 attribute feature [[]] ? No, because restrict is a language feature and [[attributes]] are specifically designed to be ignorable and shouldnt be used for things having language semantic meaning. During the ISO C++11 process, I [...]

Fri, 30 Mar 2012 00:38:15 UTC

Interview: C++A Language for Modern Times

Posted By Herb Sutter

Last week I spent 30 minutes with interviewer Robert Hess to talk about the differences between managed and native languages, and why modern C++ is clean, safe, and fast  as clean and safe as any other modern language, and still the king of fast. The interview just went live today on Channel 9. Heres [...]

Mon, 26 Mar 2012 11:36:52 UTC

C++ and Beyond 2012: Aug 5-8, Asheville, NC, USA

Posted By Herb Sutter

February and March have been killer busy, so that I forgot to repeat an important announcement here: registration is open for C++ and Beyond 2012! Im looking forward to teaching for three days again with Scott Meyers and Andrei Alexandrescu as one of the top C++ conference highlights of the year. This year, C&B will [...]

Thu, 08 Mar 2012 23:04:48 UTC

Trip Report: February 2012 C++ Standards Meeting

Posted By Herb Sutter

The spring 2012 meeting of ISO/IEC JTC1/SC22/WG21 (C++) was held on February 6-10 in Kona, Hawaii, USA. Heres the major takeaway: This is going to be a busy year as investment in C++ across the industry continues to increase, and thats good news for C++. Here are some highlights from the meeting. Attendance This was [...]

Tue, 06 Mar 2012 23:24:34 UTC

Welcome to the Jungle in Kansas City  March 20, 2012

Posted By Herb Sutter

Thanks to Perceptive Software who are bringing me to Kansas City in two weeks to give a free talk on Welcome to the Jungle. The talk will be based on my recent essay of the same name (sequel to The Free Lunch Is Over) concerning the turn to mainstream heterogeneous distributed computing and the end [...]

Wed, 29 Feb 2012 17:21:00 UTC

VC++11 Beta Available, Supported For Production Code

Posted By Herb Sutter

Earlier this month, I announced in my GoingNative talk C++11, VC++11 and Beyond that Visual C++ 11 Beta would be available in February. Todays the day: You can download Visual Studio 11 Beta here. Interestingly, VC++11 is being distributed under a go-live license, which means that Microsoft supports using this compiler to write production code. [...]

Wed, 29 Feb 2012 14:41:45 UTC

PR Night with the HEAT! Sunday, April 22.

Posted By Herb Sutter

PR Night with the HEAT! Sunday, April 22. Buy tickets early. Posted by oncallpr Back by Popular Demand&. Public Relations Night With the MIAMI HEAT  Houston Rockets vs HEAT Sunday, April 22 Buy Your Tickets Early so You Dont Get Shut Out (last year we closed out): 6 p.m. @ American Airlines Arena $55 [...]

Wed, 29 Feb 2012 14:39:12 UTC

ANNOUNCEMENT: PR News Welcomed as Newest SFPRN Sponsor

Posted By Herb Sutter

PR News, an excellent resource for our industry professionals, is the newest sponsor to help support the South Florida Public Relations Network. Our sponsors make it possible to continue to provide this free member service and our low cost events and networking activities, along with student study recognitions. Please visit our SPONSOR page and take [...]

Sun, 26 Feb 2012 21:59:16 UTC

James Hamilton on reliability

Posted By Herb Sutter

Dont trust hardware or software; then you can build trustworthy hardware and software. James Hamilton on how to write reliable software in a world where anything that can fail, will fail. Filed under: Hardware, Software Development

Thu, 23 Feb 2012 20:09:11 UTC

VC++11 Beta on Feb 29

Posted By Herb Sutter

Three weeks ago, I announced in my GoingNative talk C++11, VC++11 and Beyond that Visual C++ 11 Beta would be available this month. With Somas announcement this morning, Im now happy to add a few more details: VC++11 Beta will be available on Feb 29. It will be under a go-live license, which means that [...]

Thu, 09 Feb 2012 00:54:31 UTC

Going Native Sessions Online

Posted By Herb Sutter

Thanks to everyone who came to Redmond and/or watched online to participate in Going Native 2012, last weeks global C++-fest. It was a lot of fun, and generated a lot of useful and important talks that we hope will help continue disseminate understanding of C++11 throughout the global C++ community. All the videos are now [...]

Fri, 03 Feb 2012 01:15:00 UTC

GoingNative 2012: Day 2 Tomorrow (Friday)

Posted By Herb Sutter

GoingNative 2012 Day 1 is just concluding, and were getting ready for Day 2 tomorrow with more C++11 information and panels. Day 2 kicks off tomorrow at 9:30am U.S. Pacific time, with the theme C++11 Today and Tomorrow. Day 1s focus was entirely about C++11 as it exists today; Day 2 is partly about C++11 [...]

Wed, 01 Feb 2012 18:47:34 UTC

GoingNative 2012: Minus 1 Day

Posted By Herb Sutter

GoingNative 2012 is a global live C++11-fest with unlimited free worldwide attendance  both live and on demand. The goal is to make it interactive, and weve asked the speakers to reserve time at the ends of their talks for questions. Tweet questions to #ch9live or #GoingNative and we’ll try and get them asked. To [...]

Mon, 30 Jan 2012 19:14:00 UTC

GoingNative 2012: Minus 3 Days

Posted By Herb Sutter

Recap: GoingNative 2012 is a global live C++11-fest that kicks off this Thursday at 9:30am U.S. Pacific time. 350 live in the room. Unlimited free worldwide attendance  both live and on demand. Note that because of technical limitations, watching the livestream requires Silverlight (watching the stored videos later on demand will not). Silverlight is [...]

Sat, 28 Jan 2012 21:55:29 UTC

GoingNative 2012: Minus 5 Days

Posted By Herb Sutter

Recap: GoingNative 2012, the worlds first globally simulcast C++ convention, starts with Bjarne Stroustrups opening keynote C++ Style this Thursday at 9:30am U.S. Pacific time (time zone converter). In-room attendance is sold out, but worldwide attendance is unlimited and free  all sessions will be livestreamed, and later after a short processing delay will also [...]

Thu, 26 Jan 2012 21:16:00 UTC

GoingNative 2012: Minus One Week

Posted By Herb Sutter

GoingNative 2012 is sold out for in-person attendees, but online attendance is free and unlimited  live-stream and on-demand. Watch the main page for links. GoingNative 2012 is a 48 hour technical event for those who push the boundaries of general purpose computing by exploiting the true capabilities of the underlying machine: C++ developers. Distinguished [...]

Fri, 20 Jan 2012 20:46:53 UTC

GotW #103: Smart Pointers, Part 1 (Difficulty: 3/10)

Posted By Herb Sutter

JG Question 1. When should you use shared_ptr vs. unique_ptr? List as many considerations as you can.   Guru Questions 2. Why should you always use make_shared to allocate objects whose lifetimes will be managed by shared_ptr? Explain. 3. Whats the deal with auto_ptr? Filed under: C++

Fri, 20 Jan 2012 20:42:33 UTC

GotW #102: Solution

Posted By Herb Sutter

The solution to GotW #102 is now live. Filed under: C++

Mon, 16 Jan 2012 18:54:22 UTC

C++11 GoingNative 2012: Speakers and Sessions

Posted By Herb Sutter

The speakers and sessions for GoingNative 2012 (Feb 2-3, Redmond WA USA) have now been posted. With the focus squarely on C++11 on all compilers and platforms, I think this is going to be the C++ event of the first half of 2012, and Im very pleased with the caliber of our speakers and their [...]

Tue, 10 Jan 2012 17:01:07 UTC

Map of C++

Posted By Herb Sutter

Hilarious and apt. Nice work, Alena and Jim. Filed under: C++

Fri, 30 Dec 2011 01:53:11 UTC

Welcome to the Jungle

Posted By Herb Sutter

With so much happening in the computing world, now seemed like the right time to write Welcome to the Jungle  a sequel to my earlier The Free Lunch Is Over essay. Heres the introduction:   Welcome to the Jungle In the twilight of Moores Law, the transitions to multicore processors, GPU computing, and HaaS [...]

Sat, 03 Dec 2011 01:17:53 UTC

GotW #102: Exception-Safe Function Calls (Difficulty: 7/10)

Posted By Herb Sutter

JG Question 1. In each of the following statements, what can you say about the order of evaluation of the functions f, g, and h and the expressions expr1 and expr2? Assume that expr1 and expr2 do not contain more function calls.   Guru Questions 2. In your travels through the dusty corners of your [...]

Sat, 03 Dec 2011 01:06:11 UTC

GotW #101: Solution

Posted By Herb Sutter

The solution to GotW #101 is now live. Filed under: C++

Thu, 24 Nov 2011 02:05:09 UTC

C++ Spring: GoingNative, Feb 2-3, 2012

Posted By Herb Sutter

Im very pleased to announce the C++ event of the first half of 2012: GoingNative 2012, to be held on February 2-3 in Redmond, WA, USA. (C++ and Beyond will also be great, but wont be till the second half of the year  and there are other C++ conferences/events coming too. I cant remember [...]

Thu, 24 Nov 2011 02:05:09 UTC

C++ Spring: GoingNative, Feb 2-3, 2012

Posted By Herb Sutter

Im very pleased to announce the C++ event of the first half of 2012: GoingNative 2012, to be held on February 2-3 in Redmond, WA, USA. (C++ and Beyond will also be great, but wont be till the second half of the year  and there are other C++ conferences/events coming too. I cant remember [...]

Wed, 16 Nov 2011 19:03:10 UTC

GotW 101: Compilation Firewalls, Part 2 (Difficulty: 8/10)

Posted By Herb Sutter

GotW #100 demonstrated the best way to express the Pimpl idiom using only standard C++11 features: Guru Question Is it possible to make the widget code easier to write by wrapping the Pimpl pattern in some sort of library helper? If so, how? Try to make the widget code as convenient and concise as possible [...]

Wed, 16 Nov 2011 19:03:10 UTC

GotW #101: Compilation Firewalls, Part 2 (Difficulty: 8/10)

Posted By Herb Sutter

GotW #100 demonstrated the best way to express the Pimpl idiom using only standard C++11 features: Guru Question Is it possible to make the widget code easier to write by wrapping the Pimpl pattern in some sort of library helper? If so, how? Try to make the widget code as convenient and concise as possible [...]

Wed, 16 Nov 2011 18:55:23 UTC

GotW #100: Solution

Posted By Herb Sutter

The solution to GotW #100 is now live. Filed under: C++, GotW

Wed, 16 Nov 2011 18:55:23 UTC

GotW #100: Solution

Posted By Herb Sutter

The solution to GotW #100 is now live. Filed under: C++, GotW

Fri, 04 Nov 2011 22:52:20 UTC

GotW #100: Compilation Firewalls

Posted By Herb Sutter

JG Questions 1. What is the Pimpl Idiom, and why is it useful? Guru Questions 2. What is the best way to express the basic Pimpl Idiom in C++11? 3. What parts of the class should go into the impl object? Some potential options include: put all private data (but not functions) into impl; put [...]

Fri, 04 Nov 2011 22:52:20 UTC

GotW #100: Compilation Firewalls

Posted By Herb Sutter

JG Questions 1. What is the Pimpl Idiom, and why is it useful? Guru Questions 2. What is the best way to express the basic Pimpl Idiom in C++11? 3. What parts of the class should go into the impl object? Some potential options include: put all private data (but not functions) into impl; put [...]

Thu, 03 Nov 2011 06:14:16 UTC

A Passing of Giants

Posted By Herb Sutter

I don’t normally blog poetry, but the passing of our giants this past month has put me in such a mood.   What is built becomes our future Hand-constructed, stone by stone Quarried by our elders’ labors Fashioned with their strength and bone Dare to dream, and dare to conquer Fears by building castles grand [...]

Thu, 03 Nov 2011 06:14:16 UTC

A Passing of Giants

Posted By Herb Sutter

I don’t normally blog poetry, but the passing of our giants this past month has put me in such a mood. . What is built becomes our future Hand-constructed, stone by stone Quarried by our elders’ labors Fashioned with their strength and bone Dare to dream, and dare to conquer Fears by building castles grand [...]

Wed, 02 Nov 2011 00:14:44 UTC

Scott Meyers C++11 Materials: The Best Available Overview of C++11

Posted By Herb Sutter

  People keep asking me where to find good information on C++11. Until now Ive had to point them to blogs, and say that were all working on revising our books but itll take a while. Its been an unsatisfying answer. Finally I have a C++11 book I can direct people to: Today Scott Meyers [...]

Wed, 02 Nov 2011 00:14:44 UTC

Scott Meyers C++11 Materials: The Best Available Overview of C++11

Posted By Herb Sutter

  People keep asking me where to find good information on C++11. Until now Ive had to point them to blogs, and say that were all working on revising our books but itll take a while. Its been an unsatisfying answer. Finally I have a C++11 book I can direct people to: Today Scott Meyers [...]

Sat, 29 Oct 2011 01:13:40 UTC

Elements of Modern C++ Style

Posted By Herb Sutter

As Im getting ready to resume writing a few new (or updated) Guru of the Week Items for the C++11 era, Ive been looking through the wonderful features of C++11 and analyzing just which ones will affect the baseline style of how I write modern C++ code, both for myself and for publication. Ive gathered [...]

Sat, 29 Oct 2011 01:13:40 UTC

Elements of Modern C++ Style

Posted By Herb Sutter

As Im getting ready to resume writing a few new (or updated) Guru of the Week Items for the C++11 era, Ive been looking through the wonderful features of C++11 and analyzing just which ones will affect the baseline style of how I write modern C++ code, both for myself and for publication. Ive gathered [...]

Tue, 25 Oct 2011 23:44:51 UTC

Garbage Collection Synopsis, and C++

Posted By Herb Sutter

In response to my note about John McCarthys inventing automatic (non ref-counted) garbage collection, rosen4obg asked: OK, GC was invented half a century ago. When it is going to land in the C++ world? Heres a short but detailed answer, which links to illuminating reading and videos. The Three Kinds of GC The three major [...]

Tue, 25 Oct 2011 23:44:51 UTC

Garbage Collection Synopsis, and C++

Posted By Herb Sutter

In response to my note about John McCarthys inventing automatic (non ref-counted) garbage collection, rosen4obg asked: OK, GC was invented half a century ago. When it is going to land in the C++ world? Heres a short but detailed answer, which links to illuminating reading and videos. The Three Kinds of GC The three major [...]

Tue, 25 Oct 2011 08:15:08 UTC

John McCarthy

Posted By Herb Sutter

What a sad, horrible month. First Steve Jobs, then Dennis Ritchie, and now John McCarthy. We are losing many of the greats all at once. If you havent heard of John McCarthy, youre probably learning about his many important contributions now. Some examples: Hes the inventor of Lisp, the second-oldest high-level programming language, younger than [...]

Tue, 25 Oct 2011 08:15:08 UTC

John McCarthy

Posted By Herb Sutter

What a sad, horrible month. First Steve Jobs, then Dennis Ritchie, and now John McCarthy. We are losing many of the greats all at once. If you havent heard of John McCarthy, youre probably learning about his many important contributions now. Some examples: Hes the inventor of Lisp, the second-oldest high-level programming language, younger than [...]

Mon, 17 Oct 2011 01:12:19 UTC

Your First C Program

Posted By Herb Sutter

As a tribute in honor of Dennis Ritchies passing, Id like to invite you to share your thoughts in this posts comments about your first C program  either the code if you remember it approximately, or a story about when you wrote it. Heres mine. I wrote my first C program in 1988 as [...]

Mon, 17 Oct 2011 01:12:19 UTC

Your First C Program

Posted By Herb Sutter

As a tribute in honor of Dennis Ritchies passing, Id like to invite you to share your thoughts in this posts comments about your first C program  either the code if you remember it approximately, or a story about when you wrote it. Heres mine. I wrote my first C program in 1988 as [...]

Sat, 15 Oct 2011 01:54:03 UTC

Temporary Post Used For Theme Detection (a49628b6-b764-40c5-b98c-98945ca89832  3bfe001a-32de-4114-a6b4-4005b770f6d7)

Posted By Herb Sutter

This is a temporary post that was not deleted. Please delete this manually. (dc9f99c7-a6c2-4390-9891-b4562fbfb071 – 3bfe001a-32de-4114-a6b4-4005b770f6d7) Filed under: Uncategorized

Thu, 13 Oct 2011 23:37:04 UTC

2000 Interview: Dennis Ritchie, Bjarne Stroustrup, and James Gosling

Posted By Herb Sutter

  Dennis Ritchie gave very few interviews, but I was lucky enough to be able to get one of them. Back in 2000, when I was editor of C++ Report, I interviewed the creators of C, C++, and Java all together: The C Family of Languages: Interview with Dennis Ritchie, Bjarne Stroustrup, and James Gosling [...]

Thu, 13 Oct 2011 23:37:04 UTC

2000 Interview: Dennis Ritchie, Bjarne Stroustrup, and James Gosling

Posted By Herb Sutter

Dennis Ritchie gave very few interviews, but I was lucky enough to be able to get one of them. Back in 2000, when I was editor of C++ Report, I interviewed the creators of C, C++, and Java all together: The C Family of Languages: Interview with Dennis Ritchie, Bjarne Stroustrup, and James Gosling This [...]

Thu, 13 Oct 2011 05:24:49 UTC

Dennis Ritchie

Posted By Herb Sutter

What a sad week. Rob Pike reports that Dennis Ritchie also has passed away. Ritchie was one of the pioneers of computer science, and a well-deserved Turing winner for his many contributions, notably the creation of C — by far the most influential programming language in history, and still going strong today. Aside: Speaking of [...]

Thu, 13 Oct 2011 05:24:49 UTC

Dennis Ritchie

Posted By Herb Sutter

What a sad week. Rob Pike reports that Dennis Ritchie also has passed away. Ritchie was one of the pioneers of computer science, and a well-deserved Turing winner for his many contributions, notably the creation of C — by far the most influential programming language in history, and still going strong today. Aside: Speaking of [...]

Mon, 10 Oct 2011 19:48:27 UTC

ISO C++11 Published

Posted By Herb Sutter

ISO has now published the new C++11 standard and issued a press release: English here, French here. Thanks again to everyone who made this happen, most especially Bjarne Stroustrup, who not only invented the language three decades ago, but as Evolution Working Group subgroup chair continues to be an active guiding force in its continued evolution. [...]

Mon, 10 Oct 2011 19:48:27 UTC

ISO C++11 Published

Posted By Herb Sutter

ISO has now published the new C++11 standard and issued a press release: English here, French here. Thanks again to everyone who made this happen, most especially Bjarne Stroustrup, who not only invented the language three decades ago, but as Evolution Working Group subgroup chair continues to be an active guiding force in its continued evolution. [...]

Sat, 08 Oct 2011 00:45:45 UTC

Why no container-based algorithms?

Posted By Herb Sutter

A few minutes ago, a colleague on another team asked: I really enjoyed your talk on Modern C++ from the Build conference, and have a quick question: Could there be a simpler syntax  something like: foreach(collection, lambda_function) // or some other syntactic name for foreach which would expand to for_each(begin(collection), end(collection), lambda_function) Same for find_if, [...]

Sat, 08 Oct 2011 00:45:45 UTC

Why no container-based algorithms?

Posted By Herb Sutter

A few minutes ago, a colleague on another team asked: I really enjoyed your talk on Modern C++ from the Build conference, and have a quick question: Could there be a simpler syntax  something like: foreach(collection, lambda_function) // or some other syntactic name for foreach which would expand to for_each(begin(collection), end(collection), lambda_function) Same for [...]

Fri, 07 Oct 2011 19:24:13 UTC

WordPress.com expertise

Posted By Herb Sutter

I’m generally satisfied with the look and feel of this blog, but would like to tweak it in a few small ways to get a cleaner look, nicer formatting for code examples, and such. If you or someone you know is familiar with WordPress.com blog customization, and is interested in a small project along these [...]

Fri, 07 Oct 2011 19:24:13 UTC

WordPress.com expertise

Posted By Herb Sutter

I’m generally satisfied with the look and feel of this blog, but would like to tweak it in a few small ways to get a cleaner look, nicer formatting for code examples, and such. If you or someone you know is familiar with WordPress.com blog customization, and is interested in a small project along these [...]

Thu, 06 Oct 2011 17:16:31 UTC

Steve Jobs

Posted By Herb Sutter

Today our industry is much less than it was yesterday. We have lost one of the great inventors. Even more importantly, Steve Jobs’ family has lost a husband and brother and father, and our thoughts are with them. What can be said that hasn’t been said? Steve has been arguably the single most influential driver [...]

Thu, 06 Oct 2011 17:16:31 UTC

Steve Jobs

Posted By Herb Sutter

Today our industry is much less than it was yesterday. We have lost one of the great innovators. Even more importantly, Steve Jobs’ family has lost a husband and brother and father, and our thoughts are with them. What can be said that hasn’t been said? Steve has been arguably the single most influential driver [...]

Mon, 19 Sep 2011 23:37:11 UTC

My two //build/ talks online

Posted By Herb Sutter

My two talks from last week’s //build/ conference are online. My personal favorite is Writing Modern C++ Code: How C++ Has Evolved Over the Years. The thesis is simple: Modern ISO Standard C++ code is clean, safe, and fast. C++ has got a bad rap over the years, partly earned, but that’s history. This talk [...]

Mon, 19 Sep 2011 23:37:11 UTC

My two //build/ talks online

Posted By Herb Sutter

My two talks from last week’s //build/ conference are online. My personal favorite is Writing Modern C++ Code: How C++ Has Evolved Over the Years. The thesis is simple: Modern ISO Standard C++ code is clean, safe, and fast. C++ has got a bad rap over the years, partly earned, but that’s history. This talk [...]

Tue, 13 Sep 2011 19:00:32 UTC

Ars: Searching Win8

Posted By Herb Sutter

Check out Ars’ choice of search term about 2/3 of the way down the page. Hi-res here. Filed under: C++, Microsoft, Software Development

Tue, 13 Sep 2011 19:00:32 UTC

Ars: Searching Win8

Posted By Herb Sutter

Check out Ars’ choice of search term about 2/3 of the way down the page. Hi-res here. Filed under: C++, Microsoft, Software Development

Wed, 07 Sep 2011 22:00:01 UTC

My C++ and Beyond Intro: C++ Renaissance

Posted By Herb Sutter

Channel 9 has just posted a recording of my intro talk at C++ and Beyond 2011 last month in Banff. Here’s the link: C++ and Beyond 2011: Why C++. It’s a keynote-y talk, not a technical talk, but we felt it was important to address an important trend involving the language. The goal is to share a [...]

Wed, 07 Sep 2011 22:00:01 UTC

My C++ and Beyond Intro: C++ Renaissance

Posted By Herb Sutter

Channel 9 has just posted a recording of my intro talk at C++ and Beyond 2011 last month in Banff. Here’s the link: C++ and Beyond 2011: Why C++. It’s a keynote-y talk, not a technical talk, but we felt it was important to address an important trend involving the language. The goal is to share a [...]

Thu, 25 Aug 2011 01:55:29 UTC

C9 interview with Scott Meyers, Andrei Alexandrescu, and me

Posted By Herb Sutter

After the end of the C++ and Beyond event earlier this month, Charles Torre interviewed all three of us for Channel 9. I thought it came out really well, and stayed firmly focused on C++ — including even during the parts we talked about D and other languages, where the focus was on how their best parts could be applied to [...]

Thu, 25 Aug 2011 01:55:29 UTC

C9 interview with Scott Meyers, Andrei Alexandrescu, and me

Posted By Herb Sutter

After the end of the C++ and Beyond event earlier this month, Charles Torre interviewed all three of us for Channel 9. I thought it came out really well, and stayed firmly focused on C++ — including even during the parts we talked about D and other languages, where the focus was on how their best parts could be applied to [...]

Thu, 25 Aug 2011 01:42:11 UTC

Trip Report: August 2011 C++ Standards Meeting

Posted By Herb Sutter

The spring 2011 ISO C++ meeting was held on August 15-19 in Bloomington, Indiana, USA on the wonderful Indiana University campus. The minutes will be available at the 2011 papers page in a couple of weeks. As previously announced, C++11 was unanimously approved just days before the standards meeting, so this was the first post-C++11 meeting. As [...]

Thu, 25 Aug 2011 01:42:11 UTC

Trip Report: August 2011 C++ Standards Meeting

Posted By Herb Sutter

The summer 2011 ISO C++ meeting was held on August 15-19 in Bloomington, Indiana, USA on the wonderful Indiana University campus. The minutes will be available at the 2011 papers page in a couple of weeks. As previously announced, C++11 was unanimously approved just days before the standards meeting, so this was the first post-C++11 meeting. As [...]

Fri, 12 Aug 2011 21:24:16 UTC

We have an international standard: C++0x is unanimously approved

Posted By Herb Sutter

The final ISO ballot on C++0x closed on Wednesday, and we just received the results: Unanimous approval. The next revision of C++ that we’ve been calling “C++0x” is now an International Standard! Geneva will take several months to publish it, but we hope it will be published well within the year, and then we’ll be [...]

Fri, 12 Aug 2011 21:24:16 UTC

We have an international standard: C++0x is unanimously approved

Posted By Herb Sutter

[Update: "C++11" is now the confirmed name -- Geneva informs me that they plan to have it published in a matter of weeks, and then we'll have ISO/IEC 14882:2011(E) Programming Languages -- C++, Third Edition. The second edition was C++03, a Technical Corrigendum, or bug patch, that contained no new features. This is the first [...]

Thu, 28 Jul 2011 21:22:29 UTC

C++ Renaissance: The Going Native Channel

Posted By Herb Sutter

I’m happy to report there’s a new show on Channel 9 that focuses on native code development in C++. It’s called “Going Native”… iTunes podcast here, Twitter @C9GoingNative. From the description: C9::GoingNative is a show dedicated to native development with an emphasis on C++ and C++ developers. Each episode will have a segment including an interview with a native [...]

Thu, 28 Jul 2011 21:22:29 UTC

C++ Renaissance: The Going Native Channel

Posted By Herb Sutter

I’m happy to report there’s a new show on Channel 9 that focuses on native code development in C++. It’s called “Going Native”… iTunes podcast here, Twitter @C9GoingNative. From the description: C9::GoingNative is a show dedicated to native development with an emphasis on C++ and C++ developers. Each episode will have a segment including an interview with a native [...]

Sat, 09 Jul 2011 03:52:39 UTC

My Final C++ and Beyond 2011 Sessions

Posted By Herb Sutter

I just posted two more sessions I’ll be giving next month at C++ and Beyond. (Aside: If you’re interested in coming, register soon; there are now only 11 seats left.) “C++ Renaissance.” I've been asked to give the opening “Welcome, Everyone!” keynote talk at C&B 2011, and it's time to cover an increasingly open secret: After [...]

Sat, 09 Jul 2011 03:52:39 UTC

My Final C++ and Beyond 2011 Sessions

Posted By Herb Sutter

I just posted two more sessions I’ll be giving next month at C++ and Beyond. (Aside: If you’re interested in coming, register soon; there are now only 11 seats left.) “C++ Renaissance.” Ive been asked to give the opening Welcome, Everyone! keynote talk at C&B 2011, and its time to cover an increasingly open secret: After [...]

Mon, 20 Jun 2011 00:58:18 UTC

Daniel Moth's C++ AMP session is now online

Posted By Herb Sutter

In my keynote on Wednesday, I highlighted just the top two important features in the C++ AMP programming model. That afternoon, my coding colleague and demo demigod Daniel Moth gave a 45-minute session covering the entire C++ AMP programming model that walked through all the features with more examples. Daniel’s talk is now also online [...]

Mon, 20 Jun 2011 00:58:18 UTC

Daniel Moths C++ AMP session is now online

Posted By Herb Sutter

In my keynote on Wednesday, I highlighted just the top two important features in the C++ AMP programming model. That afternoon, my coding colleague and demo demigod Daniel Moth gave a 45-minute session covering the entire C++ AMP programming model that walked through all the features with more examples. Daniel’s talk is now also online [...]

Fri, 17 Jun 2011 00:21:25 UTC

C++ AMP keynote is online

Posted By Herb Sutter

Yesterday I had the privilege of talking about some of the work we’ve been doing to support massive parallelism on GPUs in the next version of Visual C++. The video of my talk announcing C++ AMP is now available on Channel 9. The first 20 minutes has nothing to do with C++ in particular or [...]

Fri, 17 Jun 2011 00:21:25 UTC

C++ AMP keynote is online

Posted By Herb Sutter

Yesterday I had the privilege of talking about some of the work we’ve been doing to support massive parallelism on GPUs in the next version of Visual C++. The video of my talk announcing C++ AMP is now available on Channel 9. (Update: Here’s an alternate link; it seems to be posted twice.) The first 20 [...]

Wed, 15 Jun 2011 00:10:31 UTC

AFDS Keynote Live Stream

Posted By Herb Sutter

Just a reminder for those interested in using C++ to harness GPUs for fast code: My keynote at AMD Fusion Developer’s Conference will be webcast live. I’ll post another link when the recorded talk is available for on-demand viewing. The talk starts at 8:30am U.S. Pacific time tomorrow (Wed June 15). Today Jem Davies of ARM [...]

Wed, 15 Jun 2011 00:10:31 UTC

AFDS Keynote Live Stream

Posted By Herb Sutter

Just a reminder for those interested in using C++ to harness GPUs for fast code: My keynote at AMD Fusion Developer’s Conference will be webcast live. I’ll post another link when the recorded talk is available for on-demand viewing. The talk starts at 8:30am U.S. Pacific time tomorrow (Wed June 15). Today Jem Davies of ARM [...]

Tue, 07 Jun 2011 16:00:26 UTC

“Ask Me Anything” interview is now live on Channel 9

Posted By Herb Sutter

The “Ask Me Anything” interview is now live. Thanks again for all your questions; we took as many of the most popular ones as we could. I hope you enjoy it. Filed under: C++, Software Development, Talks & Events

Tue, 07 Jun 2011 16:00:26 UTC

Ask Me Anything interview is now live on Channel 9

Posted By Herb Sutter

The “Ask Me Anything” interview is now live. Thanks again for all your questions; we took as many of the most popular ones as we could. I hope you enjoy it. Filed under: C++, Software Development, Talks & Events

Tue, 31 May 2011 16:00:00 UTC

Reminder: Vote on AMA questions by tomorrow night

Posted By Herb Sutter

As promised, reminder: The followup interview on Channel 9 has been scheduled, and will be shot on Thursday, June 2. You have until midnight June 1 (North American Pacific time) to post new questions, and to vote others’ questions up/down. If you haven’t been back to the call for questions page for a few days, [...]

Tue, 31 May 2011 16:00:00 UTC

Reminder: Vote on AMA questions by tomorrow night

Posted By Herb Sutter

As promised, reminder: The followup interview on Channel 9 has been scheduled, and will be shot on Thursday, June 2. You have until midnight June 1 (North American Pacific time) to post new questions, and to vote others’ questions up/down. If you haven’t been back to the call for questions page for a few days, [...]

Fri, 20 May 2011 16:59:03 UTC

My lambdas talk @NWCPP is now online

Posted By Herb Sutter

Lloyd Moore of NWCPP did record some video and post slides of my C++ lambdas talk two days ago. The video and slides (PDF) are now online.You can see Lloyd’s friendly smile in the foreground of the final frame. The room lighting and layout weren’t great for video recording, but the audio is quite clear and you can refer [...]

Fri, 20 May 2011 16:59:03 UTC

My lambdas talk @NWCPP is now online

Posted By Herb Sutter

Lloyd Moore of NWCPP did record some video and post slides of my C++ lambdas talk two days ago. The video and slides (PDF) are now online. You can see Lloyd’s friendly smile in the foreground of the final frame. The room lighting and layout weren’t great for video recording, but the audio is quite clear and you can [...]

Tue, 17 May 2011 22:03:49 UTC

Post your questions for a followup C9 interview

Posted By Herb Sutter

The last Channel 9 video interview seems to have been well-received, and some people suggested Charles should have asked about additional topics. So here’s my idea: Let’s do another C9 interview, this time with your questions — hard or soft, big or small, just not too bizarre or personal please. :) Here’s how I’ll try [...]

Tue, 17 May 2011 22:03:49 UTC

Post your questions for a followup C9 interview

Posted By Herb Sutter

The last Channel 9 video interview seems to have been well-received, and some people suggested Charles should have asked about additional topics. So here’s my idea: Let’s do another C9 interview, this time with your questions — hard or soft, big or small, just not too bizarre or personal please. :) Here’s how I’ll try [...]

Tue, 17 May 2011 17:06:29 UTC

Lambdas Talk: Tomorrow night @ NWCPP, Redmond WA USA

Posted By Herb Sutter

For those of you who are local to the greater Seattle area, tomorrow night at 6:30pm in Redmond I’ll be giving a reprise of one my talks that premiered last fall at C++ and Beyond 2010. The talk I’ll be giving is Lambdas, Lambdas Everywhere about all the wild and wonderful uses of C++0x lambda functions. It’s [...]

Tue, 17 May 2011 17:06:29 UTC

Lambdas Talk: Tomorrow night @ NWCPP, Redmond WA USA

Posted By Herb Sutter

For those of you who are local to the greater Seattle area, tomorrow night at 6:30pm in Redmond I’ll be giving a reprise of one my talks that premiered last fall at C++ and Beyond 2010. The talk I’ll be giving is Lambdas, Lambdas Everywhere about all the wild and wonderful uses of C++0x lambda functions. It’s [...]

Wed, 04 May 2011 23:33:09 UTC

Interview on Channel 9

Posted By Herb Sutter

Channel 9 just posted a new interview with me about ISO C++0x, C++’s place in the modern world, and all things C++. The topics we talked about ranged pretty widely, as you can see from the questions below. Here’s the blurb as posted on Channel 9 with links to specific questions in the interview. Enjoy. Herb [...]

Wed, 04 May 2011 23:33:09 UTC

Interview on Channel 9

Posted By Herb Sutter

Channel 9 just posted a new interview with me about ISO C++0x, C++’s place in the modern world, and all things C++. The topics we talked about ranged pretty widely, as you can see from the questions below. Here’s the blurb as posted on Channel 9 with links to specific questions in the interview. Enjoy. Herb [...]

Thu, 14 Apr 2011 18:35:00 UTC

Two More C&B Sessions: C++0x Memory Model (Scott) and Exceptional C++0x (me)

Posted By Herb Sutter

Scott Meyers, Andrei Alexandrescu and I are continuing to craft and announce the technical program for C++ and Beyond (C&B) 2011, and two more sessions are now posted. All talks are brand-new material created specifically for C&B 2011. Here are short blurbs; follow the links for longer descriptions. Scott will give a great new talk [...]

Thu, 14 Apr 2011 18:35:00 UTC

Two More C&B Sessions: C++0x Memory Model (Scott) and Exceptional C++0x (me)

Posted By Herb Sutter

Scott Meyers, Andrei Alexandrescu and I are continuing to craft and announce the technical program for C++ and Beyond (C&B) 2011, and two more sessions are now posted. All talks are brand-new material created specifically for C&B 2011. Here are short blurbs; follow the links for longer descriptions. Scott will give a great new talk [...]

Wed, 06 Apr 2011 19:52:35 UTC

Keynote at the AMD Fusion Developer Summit

Posted By Herb Sutter

In a couple of months, I’ll be giving a keynote at the AMD Fusion Developer’s Summit, which will be held on June 13-16, 2011, in Bellevue, WA, USA. Here’s my talk’s description as it appears on the conference website: AFDS Keynote: “Heterogeneous Parallelism at Microsoft” Herb Sutter, Microsoft Principal Architect, Native Languages Parallelism is not [...]

Wed, 06 Apr 2011 19:52:35 UTC

Keynote at the AMD Fusion Developer Summit

Posted By Herb Sutter

In a couple of months, I’ll be giving a keynote at the AMD Fusion Developer’s Summit, which will be held on June 13-16, 2011, in Bellevue, WA, USA. Here’s my talk’s description as it appears on the conference website: AFDS Keynote: Heterogeneous Parallelism at Microsoft Herb Sutter, Microsoft Principal Architect, Native Languages Parallelism is not [...]

Wed, 06 Apr 2011 00:32:22 UTC

C++ and Beyond 2011

Posted By Herb Sutter

I’m very much looking forward to C++ and Beyond 2011 this August, again with Scott Meyers and Andrei Alexandrescu. All of my own talks will be brand-new material never given publicly before. This year’s program will be heavily oriented toward performance (first) and C++0x (second). There are two talks announced so far: Andrei will be giving [...]

Wed, 06 Apr 2011 00:32:22 UTC

C++ and Beyond 2011

Posted By Herb Sutter

I’m very much looking forward to C++ and Beyond 2011 this August, again with Scott Meyers and Andrei Alexandrescu. All of my own talks will be brand-new material never given publicly before. This year’s program will be heavily oriented toward performance (first) and C++0x (second). There are two talks announced so far: Andrei will be giving [...]

Sat, 26 Mar 2011 03:22:41 UTC

We Have FDIS! (Trip Report: March 2011 C++ Standards Meeting)

Posted By Herb Sutter

News flash: This afternoon, the ISO C++ committee approved the final technical changes to the C++0x standard. The new International Standard for Programming Language C++ is expected to be published in summer 2011. The spring 2011 ISO C++ meeting was held on March 21-25 in Madrid, Spain. As previously reported, the goal of this meeting was [...]

Sat, 26 Mar 2011 03:22:41 UTC

We Have FDIS! (Trip Report: March 2011 C++ Standards Meeting)

Posted By Herb Sutter

News flash: This afternoon, the ISO C++ committee approved the final technical changes to the C++0x standard. The new International Standard for Programming Language C++ is expected to be published in summer 2011. The spring 2011 ISO C++ meeting was held on March 21-25 in Madrid, Spain. As previously reported, the goal of this meeting was [...]

Thu, 24 Mar 2011 22:12:53 UTC

Book on PPL is now available

Posted By Herb Sutter

For those of you who may be interested in concurrency and parallelism using Microsoft tools, there’s a new book now available on the Visual C++ 2010 Parallel Patterns Library (PPL). I hope you enjoy it. Normally I don’t write about other people’s platform-specific books, but I happened to be involved in the design of PPL, [...]

Thu, 24 Mar 2011 22:12:53 UTC

Book on PPL is now available

Posted By Herb Sutter

For those of you who may be interested in concurrency and parallelism using Microsoft tools, there’s a new book now available on the Visual C++ 2010 Parallel Patterns Library (PPL). I hope you enjoy it. Normally I don’t write about other people’s platform-specific books, but I happened to be involved in the design of PPL, [...]

Sat, 15 Jan 2011 04:08:24 UTC

Interview on Channel 9

Posted By Herb Sutter

Over the holidays, Erik Meijer interviewed me on Channel 9. We covered a wide variety of topics, mostly centered on C++ with some straying into C#/Java/Haskell/Clojure/Erlang, but ranging from auto and closures to why (not?) derive future<T> from T, and from what the two most important problems in parallelism are in 2011 to why and how [...]

Sat, 15 Jan 2011 04:08:24 UTC

Interview on Channel 9

Posted By Herb Sutter

Over the holidays, Erik Meijer interviewed me on Channel 9. We covered a wide variety of topics, mostly centered on C++ with some straying into C#/Java/Haskell/Clojure/Erlang, but ranging from auto and closures to why (not?) derive future<T> from T, and from what the two most important problems in parallelism are in 2011 to why and how [...]

Fri, 31 Dec 2010 22:35:36 UTC

2010: Cyberpunk World

Posted By Herb Sutter

Speaking as a neutral observer with exactly zero opinion on any political question, and not even a cyberpunk reader given that I’ve read about two such novels in my life: Is it just me, or do the last few months’ global news headlines read like they were ghostwritten by Neal Stephenson? I wonder if we [...]

Fri, 31 Dec 2010 22:35:36 UTC

2010: Cyberpunk World

Posted By Herb Sutter

Speaking as a neutral observer with exactly zero opinion on any political question, and not even a cyberpunk reader given that I’ve read about two such novels in my life: Is it just me, or do the last few months’ global news headlines read like they were ghostwritten by Neal Stephenson? I wonder if we [...]

Thu, 09 Dec 2010 01:54:51 UTC

Trip Report: November 2010 C++ Standards Meeting

Posted By Herb Sutter

The fall 2010 ISO C++ meeting was held on November 8-13 in Batavia, IL, USA. The post-meeting mailing is now live, including meeting minutes and other information. I attended this meeting virtually, as I was still recovering from some shoulder surgery. Fermilab’s teleconference facilities are excellent — I think it’s safe to say they’re the best [...]

Thu, 09 Dec 2010 01:54:51 UTC

Trip Report: November 2010 C++ Standards Meeting

Posted By Herb Sutter

The fall 2010 ISO C++ meeting was held on November 8-13 in Batavia, IL, USA. The post-meeting mailing is now live, including meeting minutes and other information. I attended this meeting virtually, as I was still recovering from some shoulder surgery. Fermilab’s teleconference facilities are excellent — I think it’s safe to say they’re the best [...]

Sun, 31 Oct 2010 00:03:43 UTC

PDC Languages Panel and (Shortened) Lambdas Talk

Posted By Herb Sutter

At PDC 2010 this week, I participated in a panel and gave one talk. Both are now online for live on-demand viewing. Warning: The talks currently require Silverlight, though I’m told that non-Silverlight versions may be posted later on. Here they are: 1. Languages Panel I got to participate again this year on a fun [...]

Sun, 31 Oct 2010 00:03:43 UTC

PDC Languages Panel and (Shortened) Lambdas Talk

Posted By Herb Sutter

At PDC 2010 this week, I participated in a panel and gave one talk. Both are now online for live on-demand viewing. Note: The talks should work on any browser. They do not require Silverlight. If you get a message that Silverlight is needed, it just made a mistake in auto-detecting your browser (I’m told this happens [...]

Fri, 22 Oct 2010 18:21:45 UTC

C++0x Current Hot Issues

Posted By Herb Sutter

Anthony Williams has posted an excellent summary of the two major language design questions going into next month’s ISO C++ meeting in Batavia, IL, USA. As we wind down C++0x, we are still working on an ever-decreasing set of open issues. Unsurprisingly, they’re in the newest features, as we bake them and see how they [...]

Fri, 22 Oct 2010 18:21:45 UTC

C++0x Current Hot Issues

Posted By Herb Sutter

Anthony Williams has posted an excellent summary of the two major language design questions going into next month’s ISO C++ meeting in Batavia, IL, USA. As we wind down C++0x, we are still working on an ever-decreasing set of open issues. Unsurprisingly, they’re in the newest features, as we bake them and see how they [...]

Fri, 22 Oct 2010 18:12:06 UTC

Another New Talk: Elements of Design

Posted By Herb Sutter

At C++ and Beyond next week (and in December) I’ll also be giving a brand-new half-day talk on Elements of Design. I'm passionate about design, in part because it requires specific skills and taste, but most off all because it's so important for every programmer – whether building a new library or extending one, building [...]

Fri, 22 Oct 2010 18:12:06 UTC

Another New Talk: Elements of Design

Posted By Herb Sutter

At C++ and Beyond next week (and in December) I’ll also be giving a brand-new half-day talk on Elements of Design. Im passionate about design, in part because it requires specific skills and taste, but most off all because its so important for every programmer  whether building a new library or extending one, building [...]

Fri, 08 Oct 2010 05:30:37 UTC

C++ and Beyond Session: Lambdas, Lambdas Everywhere

Posted By Herb Sutter

We’ll be posting abstracts (summaries) of the C++ and Beyond 2010 sessions over the coming days over at the C&B site. Below is the first, for my talk on “Lambdas, Lambdas Everywhere.” This is a brand new talk. I delivered a ‘sneak peek’ preview of a subset of this material in conjunction with the ISO [...]

Fri, 08 Oct 2010 05:30:37 UTC

C++ and Beyond Session: Lambdas, Lambdas Everywhere

Posted By Herb Sutter

We’ll be posting abstracts (summaries) of the C++ and Beyond 2010 sessions over the coming days over at the C&B site. Below is the first, for my talk on “Lambdas, Lambdas Everywhere.” This is a brand new talk. I delivered a ‘sneak peek’ preview of a subset of this material in conjunction with the ISO [...]

Thu, 07 Oct 2010 08:53:15 UTC

C++ and Beyond Encore: Public Registration Now Open

Posted By Herb Sutter

Public registration is now open for the overflow “Encore” showing of C++ and Beyond. The deadline for early-bird discount registration is November 14, but if you want to make sure you get a place it would probably be good to register sooner (the first showing sold out during the early-bird period). If you weren't able to [...]

Thu, 07 Oct 2010 08:53:15 UTC

C++ and Beyond Encore: Public Registration Now Open

Posted By Herb Sutter

Public registration is now open for the overflow Encore showing of C++ and Beyond. The deadline for early-bird discount registration is November 14, but if you want to make sure you get a place it would probably be good to register sooner (the first showing sold out during the early-bird period). If you werent able to [...]

Fri, 24 Sep 2010 18:50:39 UTC

Effective Concurrency: Know When to Use an Active Object Instead of a Mutex

Posted By Herb Sutter

This month’s Effective Concurrency column, “Know When to Use an Active Object Instead of a Mutex,” is now live on DDJ’s website. From the article: Let’s say that your program has a shared log file object. The log file is likely to be a popular object; lots of different threads must be able to write [...]

Fri, 24 Sep 2010 18:50:39 UTC

Effective Concurrency: Know When to Use an Active Object Instead of a Mutex

Posted By Herb Sutter

This month’s Effective Concurrency column, “Know When to Use an Active Object Instead of a Mutex,” is now live on DDJ’s website. From the article: Let’s say that your program has a shared log file object. The log file is likely to be a popular object; lots of different threads must be able to write [...]

Fri, 24 Sep 2010 16:59:54 UTC

C++ and Beyond Encore: December 13-16, 2010

Posted By Herb Sutter

If you couldn't get into October's C&B before it sold out, this is a second chance to participate.

Fri, 24 Sep 2010 16:59:54 UTC

C++ and Beyond Encore: December 13-16, 2010

Posted By Herb Sutter

If you couldn't get into October's C&B before it sold out, this is a second chance to participate.

Wed, 15 Sep 2010 17:59:44 UTC

John Gruber on IE9

Posted By Herb Sutter

Today, John Gruber wrote about Internet Explorer 9: The new UI removes most of the junk from the UI. Kind of interesting how web browsers have evolved to expose fewer UI elements. Most apps go the other way over time. Of course, that's because the page/site is the real app. And like most apps they [...]

Wed, 15 Sep 2010 17:59:44 UTC

John Gruber on IE9

Posted By Herb Sutter

Today, John Gruber wrote about Internet Explorer 9: The new UI removes most of the junk from the UI. Kind of interesting how web browsers have evolved to expose fewer UI elements. Most apps go the other way over time. Of course, thats because the page/site is the real app. And like most apps they [...]

Sat, 28 Aug 2010 15:57:46 UTC

Trip Report: August 2010 ISO C++ Standards Meeting

Posted By Herb Sutter

The summer 2010 ISO C++ meeting was held on August 2-7 in Rapperswil, Switzerland. The post-meeting mailing is now live, including meeting minutes and other information. In March (trip report), we voted the last set of feature changes into a Final Committee Draft (FCD) and, after two weeks of scurrying to apply the changes, the [...]

Sat, 28 Aug 2010 15:57:46 UTC

Trip Report: August 2010 ISO C++ Standards Meeting

Posted By Herb Sutter

The summer 2010 ISO C++ meeting was held on August 2-7 in Rapperswil, Switzerland. The post-meeting mailing is now live, including meeting minutes and other information. In March (trip report), we voted the last set of feature changes into a Final Committee Draft (FCD) and, after two weeks of scurrying to apply the changes, the [...]

Fri, 27 Aug 2010 16:47:10 UTC

Effective Concurrency: Prefer Using Futures or Callbacks to Communicate Asynchronous Results

Posted By Herb Sutter

This month’s Effective Concurrency column, “Prefer Using Futures or Callbacks to Communicate Asynchronous Results,” is now live on DDJ’s website. From the article: This time, we’ll answer the following questions: How should we express return values and out parameters from an asynchronous function, including an active object method? How should we give back multiple partial [...]

Mon, 12 Jul 2010 20:22:50 UTC

Effective Concurrency: Prefer Using Active Objects Instead of Naked Threads

Posted By Herb Sutter

This month's Effective Concurrency column, “Prefer Using Active Objects Instead of Naked Threads,” is now live on DDJ's website. From the article: ¿ Active objects dramatically improve our ability to reason about our thread’s code and operation by giving us higher-level abstractions and idioms that raise the semantic level of our program and let us [...]

Thu, 10 Jun 2010 12:48:53 UTC

Effective Concurrency Course: June and October

Posted By Herb Sutter

I forgot to blog about this until now because of focusing on the Effective Concurrency course in Stockholm a few weeks ago, but to answer those who wonder if I'll be giving it again in North America too: Yes, I'm also giving the public Effective Concurrency course again at the end of this month at [...]

Thu, 03 Jun 2010 20:56:16 UTC

Webinar Now Available On Demand

Posted By Herb Sutter

The webinar I did with James Reinders three weeks ago is now online for on-demand viewing. The link is the same as before: Five Years Since Free Lunches: Making Use of Multicore Parallelism Reflecting on the five years since "The Free Lunch is Over" article and the arrival of multicore processors, Sutter and Reinders will [...]

Fri, 28 May 2010 22:18:50 UTC

C++ and Beyond: About 2/3 Full

Posted By Herb Sutter

C++ and Beyond 2010 (October 24-27) is filling up quickly. As of this writing, nearly 40 of the 60 places have been taken since registration opened last month. If you're thinking of registering, it would probably be good to do it soon. 60 attendees is a hard limit; as I've written before, we want to [...]

Mon, 24 May 2010 20:36:57 UTC

Effective Concurrency: Associate Mutexes with Data to Prevent Races

Posted By Herb Sutter

This month's Effective Concurrency column, Associate Mutexes with Data to Prevent Races”, is now live on DDJ's website. From the article: Come together: Associate mutexes with the data they protect, and you can make your code race-free by construction Race conditions are one of the worst plagues of concurrent code: They can cause disastrous effects [...]

Sat, 08 May 2010 04:39:37 UTC

The “You Call This Journalism?” Department

Posted By Herb Sutter

The Inquirer isn't normally this silly, and it isn't even April 1. Nick Farrell writes: Why Apple might regret the Ipad [sic] THE IPAD HAS DOOMED Apple, according to market anlaysts [sic] that are expecting the tablet to spell trouble for its maker. ¿ Rather than killing off the netbook, the Ipad [sic] is harming [...]

Fri, 07 May 2010 06:32:37 UTC

May 12 Webinar on Multicore Parallelism

Posted By Herb Sutter

Next week, I'm giving a webinar with Intel's James Reinders, and we'll be available for a live Q&A session with you at the end: Five Years Since Free Lunches: Making Use of Multicore Parallelism May 12, 2010 at 8 a.m. PT/11 a.m. ET. Reflecting on the five years since "The Free Lunch is Over" article [...]

Fri, 07 May 2010 06:16:56 UTC

Links I enjoyed this week: Flash and HTML5

Posted By Herb Sutter

These are the two best links I've read in the wake of the Flash and HTML5 brouhaha(s). They discuss other informative points too, but their biggest value lies in discussing three things, to which I'll offer the answers that make the most sense to me: What is the web, really? “The web” is the cross-linked [...]

Sat, 17 Apr 2010 17:54:41 UTC

C++ and Beyond 2010: Registration Now Open

Posted By Herb Sutter

I'm happy to report that registration is now open for C++ and Beyond 2010 with me, Scott Meyers, and Andrei Alexandrescu. The event will start on the evening of Sunday October 24 with a reception, to be followed by three solid breakfast-to-bedtime days full of structured and unstructured technical content and learning opportunities in what [...]

Sat, 10 Apr 2010 23:20:32 UTC

“Readability”

Posted By Herb Sutter

If you like reading just about anything on the web, including my articles, in a pretty nicely rendered plain format with no ads or other distractions, you might want to try out arc90's Readability. All you do is drag a bookmarklet to your bookmark bar, and then on any article-like web page you can click on [...]

Wed, 07 Apr 2010 17:35:00 UTC

Links I enjoyed this week

Posted By Herb Sutter

C++ and C++0x C++0x Core Language Features in VC10 [Visual C++ 2010] (MSDN) This is the VC++ team's overview, side by side with the previous release. Includes handy links to the C++ committee paper numbers. See also Scott Meyers' C++0x feature availability tracker for gcc and VC++, which is fairly up to [...]

Fri, 02 Apr 2010 21:36:44 UTC

How anyone can comment on the FCD

Posted By Herb Sutter

Do you want to comment on the C++0x Final Committee Draft (that's the link where it just went live online and is freely publicly available), but you aren’t an official member of some ISO national body? Well, you can: UK is volunteering to channel your comment. Thanks, Anthony and the rest of the BSI panel! (Open process: [...]

Thu, 01 Apr 2010 23:00:00 UTC

Links I enjoyed, and iPad musings

Posted By Herb Sutter

Appetizers: Three cool links The Design of Design by Fred Brooks (Amazon) Yes, a new book by the Fred Brooks. Started reading it in Stanza on my iPhone today¿ A Turing Machine (aturingmachine.com) I'm in love. This is my favorite computer ever. I so want one. The [...]

Tue, 30 Mar 2010 15:23:33 UTC

Flash In the Pan

Posted By Herb Sutter

You’ve no doubt noticed the recent acceleration of the transition from Flash in favor of HTML5, thanks in large part to Apple’s refusal to support Flash on iPhone and iPad. First YouTube, and now TED, Vimeo, CBS, and Time and The New York Times are adding support for HTML5 in addition to, or instead [...]

Fri, 26 Mar 2010 18:56:44 UTC

C++0x FCD launches, will be freely available online in about a week

Posted By Herb Sutter

This morning, the C++0x FCD text was completed by our tireless project editor Pete Becker, approved by the review committee of Steve Adamczyk and Howard Hinnant, and sent to SC22 for FCD ballot. The SC22 secretariat has informed us that the FCD ballot will begin today and close on July 26. Thank you to everyone involved [...]

Tue, 23 Mar 2010 03:01:17 UTC

Links I enjoyed reading this week

Posted By Herb Sutter

Software-related PDF the Most Common Malware Vector (Schneier) It's almost non-news, because it's been obvious for years that this was coming. Malware writers target the common programs and formats. Several years ago, I talked to senior developers from a major software company on multiple occasions about memory safety and secure coding, [...]

Fri, 19 Mar 2010 10:00:00 UTC

Warren Buffet Rocks

Posted By Herb Sutter

Really. Direct link. Filed under: Friday Thoughts

Fri, 19 Mar 2010 10:00:00 UTC

Warren Buffet Rocks

Posted By Herb Sutter

Really. Direct link. Filed under: Friday Thoughts

Fri, 19 Mar 2010 10:00:00 UTC

Warren Buffett Rocks

Posted By Herb Sutter

Really. Direct link. Filed under: Friday Thoughts

Wed, 17 Mar 2010 00:52:15 UTC

Comment policy

Posted By Herb Sutter

On this blog, I've always been happy to follow a policy of not editor or censoring comments, and let comments stand whether the commenter agrees with me or not. However, recently a few comments have strayed into name-calling (e.g., I'd never heard the term “freetard” until last week), and I've decided to remove comments that [...]

Wed, 17 Mar 2010 00:52:15 UTC

Comment policy

Posted By Herb Sutter

[Updated 3/17 for clarity.] On this blog, I've always been happy to follow a policy of not editing or filtering comments, and to let comments stand whether the commenter agrees with me or not. However, recently a few comments have strayed into name-calling (e.g., I'd never heard the term “freetard” until last week), and I've decided [...]

Sat, 13 Mar 2010 19:40:25 UTC

Trip Report: March 2010 ISO C++ Standards Meeting

Posted By Herb Sutter

[Note: I usually post trip reports after the public post-meeting mailing goes live a few weeks after the meeting, so that I can provide links to minutes and papers. This time, I wanted to post the report right away to share the news. If you're interested in the post-meeting papers, including the official minutes, watch [...]

Sat, 13 Mar 2010 19:40:25 UTC

Trip Report: March 2010 ISO C++ Standards Meeting

Posted By Herb Sutter

[Note: I usually post trip reports after the public post-meeting mailing goes live a few weeks after the meeting, so that I can provide links to minutes and papers. This time, I wanted to post the report right away to share the news. If you're interested in the post-meeting papers, including the official minutes, watch [...]

Sat, 13 Mar 2010 15:50:34 UTC

Links I enjoyed reading this week

Posted By Herb Sutter

Concurrency-related (more or less directly) Samples updated for ConcRT, PPL and Agents (Microsoft Parallel Programming blog) Update to the samples for the Visual Studio 2010 Release Candidate. Hmm, I suppose I should include a link to that too: Visual Studio 2010 and .NET Framework 4 Release Candidate (Microsoft) [...]

Sat, 13 Mar 2010 15:50:34 UTC

Links I enjoyed reading this week

Posted By Herb Sutter

Concurrency-related (more or less directly) Samples updated for ConcRT, PPL and Agents (Microsoft Parallel Programming blog) Update to the samples for the Visual Studio 2010 Release Candidate. Hmm, I suppose I should include a link to that too: Visual Studio 2010 and .NET Framework 4 Release Candidate (Microsoft) [...]

Wed, 03 Mar 2010 09:22:00 UTC

Where can you get the ISO C++ standard, and what does “open standard” mean?

Posted By Herb Sutter

In my role as convener of the ISO C++ committee, I get to field a number of questions about the committee and its process. It occurred to me that some of them might be of more general interest, so I'll occasionally publish an edited version of my reply here in case other people have similar [...]

Wed, 03 Mar 2010 09:22:00 UTC

Where can you get the ISO C++ standard, and what does “open standard” mean?

Posted By Herb Sutter

In my role as convener of the ISO C++ committee, I get to field a number of questions about the committee and its process. It occurred to me that some of them might be of more general interest, so I'll occasionally publish an edited version of my reply here in case other people have similar [...]

Tue, 02 Mar 2010 03:04:35 UTC

Effective Concurrency Europe 2010

Posted By Herb Sutter

Last May, I gave a public Effective Concurrency course in Stockholm. It was well-attended, and a number of people have asked if it will be offered again. The answer is yes. I'm happy to report that Effective Concurrency Europe 2010 will be held on May 5-7, 2010, in Stockholm, Sweden. There's an early-bird rate available for [...]

Tue, 02 Mar 2010 03:04:35 UTC

Effective Concurrency Europe 2010

Posted By Herb Sutter

Last May, I gave a public Effective Concurrency course in Stockholm. It was well-attended, and a number of people have asked if it will be offered again. The answer is yes. I'm happy to report that Effective Concurrency Europe 2010 will be held on May 5-7, 2010, in Stockholm, Sweden. There's an early-bird rate available for [...]

Mon, 22 Feb 2010 21:47:01 UTC

Machine Architecture slides back online

Posted By Herb Sutter

A number of people reported that the PDF slides for my Machine Architecture talk were offline. It turns out that the NWCPP servers were recently moved and the link temporarily broken, but it's now been restored. Links: Google video PDF slides (back again) Filed under: Concurrency, Hardware, Software Development

Mon, 22 Feb 2010 21:47:01 UTC

Machine Architecture slides back online

Posted By Herb Sutter

A number of people reported that the PDF slides for my Machine Architecture talk were offline. It turns out that the NWCPP servers were recently moved and the link temporarily broken, but it's now been restored. Links: Google video PDF slides (back again) Filed under: Concurrency, Hardware, Software Development

Mon, 15 Feb 2010 15:44:26 UTC

Igor Ostrovsky and the Seven Cache Effects

Posted By Herb Sutter

My colleague Igor Ostrovsky has written a useful summary of seven cache memory effects that every advanced developer should know about because of their performance impact, particularly as we strive to keep invisible bottlenecks out of parallel code. I've covered variations of Igor's examples #1, #2, #3, and #6 in my Machine Architecture talk and several [...]

Mon, 15 Feb 2010 15:44:26 UTC

Igor Ostrovsky and the Seven Cache Effects

Posted By Herb Sutter

My colleague Igor Ostrovsky has written a useful summary of seven cache memory effects that every advanced developer should know about because of their performance impact, particularly as we strive to keep invisible bottlenecks out of parallel code. I've covered variations of Igor's examples #1, #2, #3, and #6 in my Machine Architecture talk and several [...]

Mon, 18 Jan 2010 02:25:00 UTC

Effective Concurrency: Prefer Futures to Baked-In “Async APIs”

Posted By Herb Sutter

This month's Effective Concurrency column, Prefer Futures to Baked-In “Async APIs”, is now live on DDJ's website. From the article: When designing concurrent APIs, separate "what" from "how" Let’s say you have an existing synchronous API function [called DoSomething]¿ Because DoSomething could take a long time to execute (whether it keeps a CPU core busy or not), and [...]

Mon, 18 Jan 2010 02:25:00 UTC

Effective Concurrency: Prefer Futures to Baked-In “Async APIs”

Posted By Herb Sutter

This month's Effective Concurrency column, Prefer Futures to Baked-In “Async APIs”, is now live on DDJ's website. From the article: When designing concurrent APIs, separate "what" from "how" Let’s say you have an existing synchronous API function [called DoSomething]¿ Because DoSomething could take a long time to execute (whether it keeps a CPU core busy or not), and [...]

Mon, 11 Jan 2010 11:14:00 UTC

C++ and Beyond: Summer 2010, Vote the Date

Posted By Herb Sutter

I always enjoy teaching together with Scott Meyers and Andrei Alexandrescu, not only because it means I get to work with good friends, but also because I get to listen to them speak. Scott and Andrei always have interesting and useful things to say and say them well. We occasionally speak at the same big [...]

Mon, 11 Jan 2010 11:14:00 UTC

C++ and Beyond: Summer 2010, Vote the Date

Posted By Herb Sutter

I always enjoy teaching together with Scott Meyers and Andrei Alexandrescu, not only because it means I get to work with good friends, but also because I get to listen to them speak. Scott and Andrei always have interesting and useful things to say and say them well. We occasionally speak at the same big [...]

Mon, 04 Jan 2010 14:14:30 UTC

Stroustrup on Teaching Software Developers

Posted By Herb Sutter

Recommended reading (it's short), from the January 2010 issue of CACM: What Should We Teach New Software Developers? Why? by Bjarne Stroustrup It's a wonderfully accurate and concise summary of the disconnect between the ivory tower and the trenches ¿ i.e., (some) computer science academics and (some) software development industry managers, with commentary on [...]

Mon, 04 Jan 2010 14:14:30 UTC

Stroustrup on Teaching Software Developers

Posted By Herb Sutter

Recommended reading (it's short), from the January 2010 issue of CACM: What Should We Teach New Software Developers? Why? by Bjarne Stroustrup It's a wonderfully accurate and concise summary of the disconnect between the ivory tower and the trenches ¿ i.e., (some) computer science academics and (some) software development industry managers, with commentary on [...]

Fri, 11 Dec 2009 21:55:37 UTC

Guest Blog: Words Matter

Posted By Herb Sutter

This morning my colleague Rob Hanz wrote an interesting email that went viral in my corner of Microsoft. He graciously allowed me to share it with you here. I hope you enjoy it too. Blink and subconscious messaging Robert Hanz I was reading Blink last night, and one of the things [...]

Fri, 11 Dec 2009 21:55:37 UTC

Guest Blog: Words Matter

Posted By Herb Sutter

This morning my colleague Rob Hanz wrote an interesting email that went viral in my corner of Microsoft. He graciously allowed me to share it with you here. I hope you enjoy it too. Blink and subconscious messaging Robert Hanz I was reading Blink last night, and one of the things [...]

Thu, 12 Nov 2009 03:45:11 UTC

Trip Report: October 2008 ISO C++ Standards Meeting

Posted By Herb Sutter

The ISO C++ committee met in Santa Cruz, CA, USA on October 19-24. You can find the minutes here, which include the votes at the whole-group sessions but not the details of the breakout technical sessions where we spend most of the week. The good news is that there's little new technical news. We did a [...]

Thu, 12 Nov 2009 03:45:11 UTC

Trip Report: October 2009 ISO C++ Standards Meeting

Posted By Herb Sutter

The ISO C++ committee met in Santa Cruz, CA, USA on October 19-24. You can find the minutes here, which include the votes at the whole-group sessions but not the details of the breakout technical sessions where we spend most of the week. The good news is that there's little new technical news. We did a [...]

Thu, 12 Nov 2009 03:45:11 UTC

Trip Report: October 2009 ISO C++ Standards Meeting

Posted By Herb Sutter

The ISO C++ committee met in Santa Cruz, CA, USA on October 19-24. You can find the minutes here, which include the votes at the whole-group sessions but not the details of the breakout technical sessions where we spend most of the week. The good news is that there's little new technical news. We did a [...]

Wed, 11 Nov 2009 18:33:15 UTC

Effective Concurrency: Prefer structured lifetimes ¿ local, nested, bounded, deterministic.

Posted By Herb Sutter

This month's Effective Concurrency column, Prefer structured lifetimes ¿ local, nested, bounded, deterministic, is now live on DDJ's website. From the article: Where possible, prefer structured lifetimes: ones that are local, nested, bounded, and deterministic. This is true no matter what kind of lifetime we're considering, including object lifetimes, thread or task lifetimes, [...]

Wed, 11 Nov 2009 18:33:15 UTC

Effective Concurrency: Prefer structured lifetimes ¿ local, nested, bounded, deterministic.

Posted By Herb Sutter

This month's Effective Concurrency column, Prefer structured lifetimes ¿ local, nested, bounded, deterministic, is now live on DDJ's website. From the article: Where possible, prefer structured lifetimes: ones that are local, nested, bounded, and deterministic. This is true no matter what kind of lifetime we're considering, including object lifetimes, thread or task lifetimes, [...]

Wed, 04 Nov 2009 15:08:07 UTC

Other Concurrency Sessions at PDC09

Posted By Herb Sutter

I mentioned yesterday that I'll be involved in two sessions at PDC09, including a parallel patterns tutorial. I know many of you are interested in concurrency in general and on Microsoft platforms in particular, so I thought I'd share this more complete list of concurrency-related sessions at PDC, put together by my colleague Stephen Toub. Overview: The [...]

Wed, 04 Nov 2009 15:08:07 UTC

Other Concurrency Sessions at PDC'09

Posted By Herb Sutter

  I mentioned yesterday that I'll be involved in two sessions at PDC09, including a parallel patterns tutorial. I know many of you are interested in concurrency in general and on Microsoft platforms in particular, so I thought I'd share this more complete list of concurrency-related sessions at PDC, put together by my colleague Stephen Toub. Overview: The [...]

Wed, 04 Nov 2009 01:13:21 UTC

PDC'09: Tutorial & Panel

Posted By Herb Sutter

For those of you coming to PDC'09 in Los Angeles a couple of weeks from now, I'll be there for a few hours on Monday and Wednesday participating in two events: Patterns of Parallel Programming: A Tutorial on Fundamental Patterns and Practices for Parallelism. The full-day tutorial is full of useful information. I'll be giving the [...]

Wed, 04 Nov 2009 01:13:21 UTC

PDC'09: Tutorial & Panel

Posted By Herb Sutter

For those of you coming to PDC'09 in Los Angeles a couple of weeks from now, I'll be there for a few hours on Monday and Wednesday participating in two events: Patterns of Parallel Programming: A Tutorial on Fundamental Patterns and Practices for Parallelism. The full-day tutorial is full of useful information. I'll be giving the [...]

Mon, 26 Oct 2009 20:42:13 UTC

Hoare on Testing

Posted By Herb Sutter

On the flight to the ISO C standards meeting this morning, I was reading this month's issue of CACM, and found that Sir C.A.R. (Tony) Hoare wrote a nice piece called Retrospective: An Axiomatic Basis for Computer Programming. Hoare has long been a noted proponent of axioms and formal proofs of program correctness. In that light, [...]

Mon, 26 Oct 2009 20:42:13 UTC

Hoare on Testing

Posted By Herb Sutter

On the flight to the ISO C standards meeting this morning, I was reading this month's issue of CACM, and found that Sir C.A.R. (Tony) Hoare wrote a nice piece called Retrospective: An Axiomatic Basis for Computer Programming. Hoare has long been a noted proponent of axioms and formal proofs of program correctness. In that light, [...]

Fri, 23 Oct 2009 21:32:09 UTC

Deprecating export considered for ISO C++0x

Posted By Herb Sutter

How interesting. I'm at the ISO C++ meeting in Santa Cruz, CA, USA this week. Ten minutes ago we had a committee straw poll about whether we should remove, deprecate, or leave as-is the export template feature for C++0x. The general sentiment was to remove or deprecate it, with deprecation getting the strongest support because it's [...]

Fri, 23 Oct 2009 21:32:09 UTC

Deprecating export considered for ISO C++0x

Posted By Herb Sutter

How interesting. I'm at the ISO C++ meeting in Santa Cruz, CA, USA this week. Ten minutes ago we had a committee straw poll about whether we should remove, deprecate, or leave as-is the export template feature for C++0x. The general sentiment was to remove or deprecate it, with deprecation getting the strongest support because it's [...]

Wed, 21 Oct 2009 12:33:00 UTC

A Concurrency Poll

Posted By Herb Sutter

I've opened up a short concurrency poll to get a sense of what concurrency issues are top-of-mind for programmers, and I'd appreciate it if you could take a few minutes to participate. Some questions are about what you want to learn more about, others about your tools of choice in specific areas, and a few [...]

Wed, 21 Oct 2009 12:33:00 UTC

A Concurrency Poll

Posted By Herb Sutter

I've opened up a short concurrency poll to get a sense of what concurrency issues are top-of-mind for programmers, and I'd appreciate it if you could take a few minutes to participate. Some questions are about what you want to learn more about, others about your tools of choice in specific areas, and a few [...]

Mon, 19 Oct 2009 00:37:10 UTC

Mailbag: Shutting up compiler warnings

Posted By Herb Sutter

I recently received the following reader question (slightly edited): About the (Stroustrup) approach of implementing IsDerivedFrom at page 27 in your book More Exceptional C++: [¿] why the second pointer assignment in: static void Constraints(D* p) {    B* pb=p; // okay, D better inherit from [...]

Mon, 19 Oct 2009 00:37:10 UTC

Mailbag: Shutting up compiler warnings

Posted By Herb Sutter

I recently received the following reader question (slightly edited): About the (Stroustrup) approach of implementing IsDerivedFrom at page 27 in your book More Exceptional C++: [¿] why the second pointer assignment in: static void Constraints(D* p) { B* pb=p; // okay, D better inherit from B… pb=p; // huh? why this again? } Isn’t the initialization ” B* pb=p ” enough? [...]

Wed, 14 Oct 2009 20:25:33 UTC

whois terry.crowley

Posted By Herb Sutter

Astute readers may have noticed that Terry Crowley's name frequently crops up in the Acknowledgments section of my Effective Concurrency columns. Who is Terry? To answer, Mary-Jo Foley profiles him this week. Posted in Concurrency, Opinion & Editorial

Wed, 14 Oct 2009 20:25:33 UTC

whois terry.crowley

Posted By Herb Sutter

Astute readers may have noticed that Terry Crowley's name frequently crops up in the Acknowledgments section of my Effective Concurrency columns. Who is Terry? To answer, Mary-Jo Foley profiles him this week. Posted in Concurrency, Opinion & Editorial

Mon, 12 Oct 2009 23:59:53 UTC

Effective Concurrency: Avoid Exposing Concurrency ¿ Hide It Inside Synchronous Methods

Posted By Herb Sutter

This month's Effective Concurrency column, Avoid Exposing Concurrency ¿ Hide It Inside Synchronous Methods, is now live on DDJ's website. From the article: You have a mass of existing code and want to add concurrency. Where do you start? Let’s say you need to migrate existing code to take advantage of concurrent execution or scale on parallel hardware. [...]

Mon, 12 Oct 2009 23:59:53 UTC

Effective Concurrency: Avoid Exposing Concurrency ¿ Hide It Inside Synchronous Methods

Posted By Herb Sutter

This month's Effective Concurrency column, Avoid Exposing Concurrency ¿ Hide It Inside Synchronous Methods, is now live on DDJ's website. From the article: You have a mass of existing code and want to add concurrency. Where do you start? Let's say you need to migrate existing code to take advantage of concurrent execution or scale on parallel hardware. [...]

Mon, 28 Sep 2009 22:34:16 UTC

“What's the Best Way To Process a Pool of Work?”

Posted By Herb Sutter

“What's the best way to process a pool of work?” is a recurring question. As usual, the answer is “it depends” because the optimal answer often depends on both the characteristics of the work itself and the constraints imposed by run-time system resources. For example, I recently received the following email from reader Sören Meyer-Eppler, where [...]

Mon, 28 Sep 2009 22:34:16 UTC

“What's the Best Way To Process a Pool of Work?”

Posted By Herb Sutter

“What's the best way to process a pool of work?” is a recurring question. As usual, the answer is “it depends” because the optimal answer often depends on both the characteristics of the work itself and the constraints imposed by run-time system resources. For example, I recently received the following email from reader Sören Meyer-Eppler, where [...]

Wed, 02 Sep 2009 12:41:25 UTC

When is a zero-length array okay?

Posted By Herb Sutter

I just received a reader email that asked about GotW #42: You write "Non-Problem: Zero-Length Arrays Are Okay", but both 14882:2003 and N2914 "[dcl.array]" say "If the constant-expression (5.19) is present, it shall be an integral constant expression and its value shall be greater than zero.". Shall we assume that you overrule the standard? :-) Or [...]

Wed, 02 Sep 2009 12:41:25 UTC

When is a zero-length array okay?

Posted By Herb Sutter

I just received a reader email that asked about GotW #42: You write "Non-Problem: Zero-Length Arrays Are Okay", but both 14882:2003 and N2914 "[dcl.array]" say "If the constant-expression (5.19) is present, it shall be an integral constant expression and its value shall be greater than zero.". Shall we assume that you overrule the standard? :-) Or [...]

Tue, 11 Aug 2009 17:50:19 UTC

Effective Concurrency: Design for Manycore Systems

Posted By Herb Sutter

This month's Effective Concurrency column, Design for Manycore Systems, is now live on DDJ's website. From the article: Why worry about “manycore” today? Dual- and quad-core computers are obviously here to stay for mainstream desktops and notebooks. But do we really need to think about "many-core" systems if we’re building a typical mainstream application right now? I find [...]

Tue, 11 Aug 2009 17:50:19 UTC

Effective Concurrency: Design for Manycore Systems

Posted By Herb Sutter

This month's Effective Concurrency column, Design for Manycore Systems, is now live on DDJ's website. From the article: Why worry about “manycore” today? Dual- and quad-core computers are obviously here to stay for mainstream desktops and notebooks. But do we really need to think about "many-core" systems if we’re building a typical mainstream application right now? I find [...]

Mon, 10 Aug 2009 20:30:18 UTC

Suggestions on improving C++ skills

Posted By Herb Sutter

Someone just asked me about getting more proficient in C++, and with their permission I thought I'd share the question and my answer in case it's of broader interest to folks wanting to improve their C++ skills. Here's the question: I need to take my C++ knowledge up a notch – or two. On a scale of [...]

Mon, 10 Aug 2009 20:30:18 UTC

Suggestions on improving C++ skills

Posted By Herb Sutter

Someone just asked me about getting more proficient in C++, and with their permission I thought I'd share the question and my answer in case it's of broader interest to folks wanting to improve their C++ skills. Here's the question: I need to take my C++ knowledge up a notch – or two. On a scale of [...]

Tue, 21 Jul 2009 21:43:49 UTC

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

Posted By 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 [...]

Tue, 21 Jul 2009 21:43:49 UTC

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

Posted By 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 [...]

Wed, 15 Jul 2009 23:08:59 UTC

Effective Concurrency: The Power of “In Progress”

Posted By Herb Sutter

This month's Effective Concurrency column, The Power of “In Progress”, is now live on DDJ's website. From the article: Don’t let a long-running operation take hostages. When some work that takes a long time to complete holds exclusive access to one or more popular shared resources, such as a thread or a mutex that controls access to [...]

Wed, 15 Jul 2009 23:08:59 UTC

Effective Concurrency: The Power of “In Progress”

Posted By Herb Sutter

This month's Effective Concurrency column, The Power of “In Progress”, is now live on DDJ's website. From the article: Don’t let a long-running operation take hostages. When some work that takes a long time to complete holds exclusive access to one or more popular shared resources, such as a thread or a mutex that controls access to [...]

Wed, 24 Jun 2009 00:27:47 UTC

Answering email about error handling in concurrent code

Posted By Herb Sutter

Someone emailed me today asking: I’m writing because I’m somewhat conscious of what I would consider a rather large hole in the parallel programming literature. ¿ What if one or more of your tasks throws an exception? Should the thread that runs the task swallow it? Should the caught exceptions get stashed somewhere so that the "parent" [...]

Wed, 24 Jun 2009 00:27:47 UTC

Answering email about error handling in concurrent code

Posted By Herb Sutter

Someone emailed me today asking: I’m writing because I’m somewhat conscious of what I would consider a rather large hole in the parallel programming literature. ¿ What if one or more of your tasks throws an exception? Should the thread that runs the task swallow it? Should the caught exceptions get stashed somewhere so that the "parent" [...]

Tue, 16 Jun 2009 18:09:16 UTC

Effective Concurrency: Break Up and Interleave Work to Keep Threads Responsive

Posted By Herb Sutter

This month's Effective Concurrency column, “Break Up and Interleave Work to Keep Threads Responsive”, is now live on DDJ's website. Sorry for the long title; suggestions welcome. I always try to word the title to make it (a) short, (b) active, and (c) advice, but sometimes I'll settle for two of those, or just one, until [...]

Tue, 16 Jun 2009 18:09:16 UTC

Effective Concurrency: Break Up and Interleave Work to Keep Threads Responsive

Posted By Herb Sutter

This month's Effective Concurrency column, “Break Up and Interleave Work to Keep Threads Responsive”, is now live on DDJ's website. Sorry for the long title; suggestions welcome. I always try to word the title to make it (a) short, (b) active, and (c) advice, but sometimes I'll settle for two of those, or just one, until [...]

Fri, 12 Jun 2009 23:59:48 UTC

Truth In Spam

Posted By Herb Sutter

This afternoon I was just finishing up my next Effective Concurrency article (it'll be up in a few days), when some spam email arrived. Just as my fingers' auto-delete macro was about to fire, I noticed something odd about the name of the attachment and did a double-take: Cool! There must be some kind of [...]

Fri, 12 Jun 2009 23:59:48 UTC

Truth In Spam

Posted By Herb Sutter

This afternoon I was just finishing up my next Effective Concurrency article (it'll be up in a few days), when some spam email arrived. Just as my fingers' auto-delete macro was about to fire, I noticed something odd about the name of the attachment and did a double-take: Cool! There must be some kind of [...]

Fri, 22 May 2009 08:53:00 UTC

Dress Re-Hearsal?

Posted By Herb Sutter

An amusing hearse, seen on a neighborhood street: Here's a close-up of the license plate:     Made my morning. Posted in Friday Thoughts

Fri, 22 May 2009 08:53:00 UTC

Dress Re-Hearsal?

Posted By Herb Sutter

An amusing hearse, seen on a neighborhood street: Here's a close-up of the license plate:     Made my morning. Posted in Friday Thoughts

Thu, 21 May 2009 00:43:20 UTC

VS2010 Beta 1 Now Available

Posted By Herb Sutter

For those of you who are interested in using or trying Microsoft development tools, I'm happy to report that Visual Studio 2010 Beta 1 is now available. If you're interested in: concurrency and parallel computing, check out the new concurrency runtime (ConcRT) that implements efficient work stealing for scalable code, the Asynchronous Agents Library and the Parallel [...]

Thu, 21 May 2009 00:43:20 UTC

VS2010 Beta 1 Now Available

Posted By Herb Sutter

For those of you who are interested in using or trying Microsoft development tools, I'm happy to report that Visual Studio 2010 Beta 1 is now available. If you're interested in: concurrency and parallel computing, check out the new concurrency runtime (ConcRT) that implements efficient work stealing for scalable code, the Asynchronous Agents Library and the Parallel [...]

Fri, 15 May 2009 18:51:38 UTC

Effective Concurrency: Eliminate False Sharing

Posted By Herb Sutter

This month's Effective Concurrency column, “Eliminate False Sharing”, is now live on DDJ's website. People keep writing asking me about my previous mentions of false sharing, even debating whether it's really a problem. So this month I decided to treat it in depth, including: A compelling and realistic example where just changing a couple of lines to [...]

Fri, 15 May 2009 18:51:38 UTC

Effective Concurrency: Eliminate False Sharing

Posted By Herb Sutter

This month's Effective Concurrency column, “Eliminate False Sharing”, is now live on DDJ's website. People keep writing asking me about my previous mentions of false sharing, even debating whether it's really a problem. So this month I decided to treat it in depth, including: A compelling and realistic example where just changing a couple of lines to [...]

Fri, 01 May 2009 08:39:00 UTC

You Know When Your UI Needs Help When¿

Posted By Herb Sutter

Seen at a gas station: You know your UI has usability issues when people tape multiple signs on your gas pump to help people get through the intricate and error-prone process of purchasing fuel. Why does the upper note exist? The trouble is that there's a Debit button but not a Credit button, and so since [...]

Fri, 01 May 2009 08:39:00 UTC

You Know When Your UI Needs Help When¿

Posted By Herb Sutter

Seen at a gas station: You know your UI has usability issues when people tape multiple signs on your gas pump to help people get through the intricate and error-prone process of purchasing fuel. Why does the upper note exist? The trouble is that there's a Debit button but not a Credit button, and so since [...]

Tue, 21 Apr 2009 00:39:00 UTC

Effective Concurrency: Use Thread Pools Correctly ¿ Keep Tasks Short and Nonblocking

Posted By Herb Sutter

This month's Effective Concurrency column, “Use Thread Pools Correctly: Keep Tasks Short and Nonblocking”, is now live on DDJ's website. From the article: ¿ But the thread pool is a leaky abstraction. That is, the pool hides a lot of details from us, but to use it effectively we do need to be aware of some things [...]

Tue, 21 Apr 2009 00:39:00 UTC

Effective Concurrency: Use Thread Pools Correctly ¿ Keep Tasks Short and Nonblocking

Posted By Herb Sutter

This month's Effective Concurrency column, “Use Thread Pools Correctly: Keep Tasks Short and Nonblocking”, is now live on DDJ's website. From the article: ¿ But the thread pool is a leaky abstraction. That is, the pool hides a lot of details from us, but to use it effectively we do need to be aware of some things [...]

Fri, 17 Apr 2009 16:31:26 UTC

A Wryly Repurposed Quotation

Posted By Herb Sutter

In my travels, I recently came across this empty store with an almost-empty box beside the front door. As seen in Monterey, CA: Evidently some character had also noticed the empty store with its empty box, and decided to do a little walk-by wry economic commentary via repurposed quotation. Zooming on the once-empty box:   Posted in Friday [...]

Fri, 17 Apr 2009 16:31:26 UTC

A Wryly Repurposed Quotation

Posted By Herb Sutter

In my travels, I recently came across this empty store with an almost-empty box beside the front door. As seen in Monterey, CA: Evidently some character had also noticed the empty store with its empty box, and decided to do a little walk-by wry economic commentary via repurposed quotation. Zooming on the once-empty box:   Posted in Friday [...]

Mon, 30 Mar 2009 20:34:36 UTC

New Dates for Effective Concurrency Seminar in Europe: May 27-29, Stockholm, Sweden

Posted By Herb Sutter

Now that I'm over the icky flu that forced me to postpone the seminar two weeks ago, I'm happy to say that we have new dates: Effective Concurrency (Europe) will be held on May 27-29, 2009, in Stockholm, Sweden. I’ll cover the following topics: Fundamentals: Define basic concurrency goals and requirements ¿ Understand applications' scalability needs [...]

Mon, 30 Mar 2009 20:34:36 UTC

New Dates for Effective Concurrency Seminar in Europe: May 27-29, Stockholm, Sweden

Posted By Herb Sutter

Now that I'm over the icky flu that forced me to postpone the seminar two weeks ago, I'm happy to say that we have new dates: Effective Concurrency (Europe) will be held on May 27-29, 2009, in Stockholm, Sweden. I’ll cover the following topics: Fundamentals: Define basic concurrency goals and requirements ¿ Understand applications' scalability needs [...]

Tue, 24 Mar 2009 21:55:29 UTC

RIP: SD Conferences

Posted By Herb Sutter

The latest casualties in the technical education world are the Software Development conferences ¿ SD West, SD Best Practices, and Architecture & Design World ¿ which are being discontinued effective immediately, making the SD West that was just held earlier this month was the last of its kind. The conferences were run by the same [...]

Tue, 24 Mar 2009 21:55:29 UTC

RIP: SD Conferences

Posted By Herb Sutter

The latest casualties in the technical education world are the Software Development conferences ¿ SD West, SD Best Practices, and Architecture & Design World ¿ which are being discontinued effective immediately, making the SD West that was just held earlier this month the last of its kind. The conferences were run by the same company [...]

Tue, 17 Mar 2009 03:06:46 UTC

Effective Concurrency: Use Threads Correctly = Isolation + Asynchronous Messages

Posted By Herb Sutter

This month's Effective Concurrency column, “Use Threads Correctly = Isolation + Asynchronous Messages”, is now live on DDJ's website. From the article: Explicit threads are undisciplined. They need some structure to keep them in line. In this column, we’re going to see what that structure is, as we motivate and illustrate best practices for using threads — [...]

Tue, 17 Mar 2009 03:06:46 UTC

Effective Concurrency: Use Threads Correctly = Isolation + Asynchronous Messages

Posted By Herb Sutter

This month's Effective Concurrency column, “Use Threads Correctly = Isolation + Asynchronous Messages”, is now live on DDJ's website. From the article: Explicit threads are undisciplined. They need some structure to keep them in line. In this column, we’re going to see what that structure is, as we motivate and illustrate best practices for using threads — [...]

Sun, 15 Mar 2009 02:20:30 UTC

Postponed: Effective Concurrency Europe

Posted By Herb Sutter

Right now I should be at 40,000 feet somewhere over Baffin Island on my way to Stockholm for Effective Concurrency Europe, but instead I'm in bed with a fever that I've had since Wednesday night and still unable to talk. The organizer and I have been staying in touch with flu updates every few hours [...]

Sun, 15 Mar 2009 02:20:30 UTC

Postponed: Effective Concurrency Europe

Posted By Herb Sutter

Right now I should be at 40,000 feet somewhere over Baffin Island on my way to Stockholm for Effective Concurrency Europe, but instead I'm in bed with a fever that I've had since Wednesday night and still unable to talk. The organizer and I have been staying in touch with flu updates every few hours [...]

Thu, 26 Feb 2009 21:37:59 UTC

Free Training For Laid-Off Developers

Posted By Herb Sutter

Like many areas in the United States, Seattle has recently been hit with layoffs and downsizing in our industry. So it's quite timely that Steve McConnell's company Construx, in the Seattle area, is offering free training for laid-off software workers: After listening to doom and gloom economic reports for the past few months, we decided we [...]

Thu, 26 Feb 2009 21:37:59 UTC

Free Training For Laid-Off Developers

Posted By Herb Sutter

Like many areas in the United States, Seattle has recently been hit with layoffs and downsizing in our industry. So it's quite timely that Steve McConnell's company Construx, in the Seattle area, is offering free training for laid-off software workers: After listening to doom and gloom economic reports for the past few months, we decided we [...]

Fri, 13 Feb 2009 16:46:00 UTC

Effective Concurrency: Sharing Is the Root of All Contention

Posted By Herb Sutter

This month's Effective Concurrency column, “Sharing Is the Root of All Contention”, is now live on DDJ's website. This article aims to address the root cause behind some frequently made assertions: Statements like “locks kill scalability” and “CAS kills scalability” are mostly true but focus on symptoms rather than causes; and others such as “reader/writer mutexes [...]

Fri, 13 Feb 2009 16:46:00 UTC

Effective Concurrency: Sharing Is the Root of All Contention

Posted By Herb Sutter

This month's Effective Concurrency column, “Sharing Is the Root of All Contention”, is now live on DDJ's website. This article aims to address the root cause behind some frequently made assertions: Statements like “locks kill scalability” and “CAS kills scalability” are mostly true but focus on symptoms rather than causes; and others such as “reader/writer mutexes [...]

Fri, 06 Feb 2009 09:17:00 UTC

Income in Perspective: 2 Bppl @ $3/day

Posted By Herb Sutter

I just saw a CNN headline that read: “Young workers scrimp to live on $15/wk.” Before reading further, what do you think: Is that stunning and shocking? Or shockingly typical? The story turned out to be a piece about white-collar workers in China trying to live frugally, spending only 100 Yuan on travel and food during [...]

Fri, 06 Feb 2009 09:17:00 UTC

Income in Perspective: 2 Bppl @ $3/day

Posted By Herb Sutter

I just saw a CNN headline that read: “Young workers scrimp to live on $15/wk.” Before reading further, what do you think: Is that stunning and shocking? Or shockingly typical? The story turned out to be a piece about white-collar workers in China trying to live frugally, spending only 100 Yuan on travel and food during [...]

Thu, 29 Jan 2009 20:13:00 UTC

Effective Concurrency Seminar in Europe: March 16-18, Stockholm, Sweden

Posted By Herb Sutter

A number of people have asked whether I will be teaching my Effective Concurrency seminar in Europe. The answer is yes: Effective Concurrency (Europe) will be held on March 16-18, 2009, in Stockholm, Sweden. This is my only public European seminar in 2009. I’ll cover the following topics: Fundamentals: Define basic concurrency goals and requirements ¿ Understand [...]

Thu, 29 Jan 2009 20:13:00 UTC

Effective Concurrency Seminar in Europe: March 16-18, Stockholm, Sweden

Posted By Herb Sutter

A number of people have asked whether I will be teaching my Effective Concurrency seminar in Europe. The answer is yes: Effective Concurrency (Europe) will be held on March 16-18, 2009, in Stockholm, Sweden. This is my only public European seminar in 2009. I’ll cover the following topics: Fundamentals: Define basic concurrency goals and requirements ¿ Understand [...]

Fri, 16 Jan 2009 18:57:06 UTC

From the "we know what they meant, but it's not what they said" department

Posted By Herb Sutter

While walking our dogs recently, we came across several of these signs — ironically, in front of our neighborhood school. Posted in Friday Thoughts

Fri, 16 Jan 2009 18:57:06 UTC

From the "we know what they meant, but it's not what they said" department

Posted By Herb Sutter

While walking our dogs recently, we came across several of these signs — ironically, in front of our neighborhood school. Posted in Friday Thoughts      

Mon, 12 Jan 2009 09:12:15 UTC

Effective Concurrency: volatile vs. volatile

Posted By Herb Sutter

This month’s Effective Concurrency column, “volatile vs. volatile”, is now live on DDJ’s website and also appears in the print magazine. (As a historical note, it’s DDJ’s final print issue, as I mentioned previously.) This article aims to answer the frequently asked question: “What does volatile mean?” The short answer: “It depends, do you mean Java/.NET [...]

Mon, 12 Jan 2009 09:12:15 UTC

Effective Concurrency: volatile vs. volatile

Posted By Herb Sutter

This month’s Effective Concurrency column, “volatile vs. volatile”, is now live on DDJ’s website and also appears in the print magazine. (As a historical note, it’s DDJ’s final print issue, as I mentioned previously.) This article aims to answer the frequently asked question: “What does volatile mean?” The short answer: “It depends, do you mean Java/.NET [...]

Thu, 08 Jan 2009 09:59:59 UTC

Answer to "16 Technologies": Engelbart and the Mother of All Demos

Posted By Herb Sutter

A few days ago I posted a challenge to name the researcher/team and approximate year each of the following 16 important technologies was first demonstrated. In brief, they were: The personal computer for dedicated individual use all day long. The mouse. Internetworks. Network service discovery. Live collaboration and desktop/app sharing. Hierarchical structure within a file system and within a document. Cut/copy/paste, with [...]

Thu, 08 Jan 2009 09:59:59 UTC

Answer to "16 Technologies": Engelbart and the Mother of All Demos

Posted By Herb Sutter

A few days ago I posted a challenge to name the researcher/team and approximate year each of the following 16 important technologies was first demonstrated. In brief, they were: The personal computer for dedicated individual use all day long. The mouse. Internetworks. Network service discovery. Live collaboration and desktop/app sharing. Hierarchical structure within a file system and within a document. Cut/copy/paste, with [...]

Mon, 05 Jan 2009 09:48:15 UTC

16 Important Technologies: Who demonstrated each one first?

Posted By Herb Sutter

We enjoy such an abundance of computing riches that it’s easy to take wonderful technological ideas for granted. Yet so many of the pieces of our modern computing experience that we consider routine today were at one time unimaginable. After all, back in the early days of computing, we were still discovering what these newfangled [...]

Mon, 05 Jan 2009 09:48:15 UTC

16 Important Technologies: Who demonstrated each one first?

Posted By Herb Sutter

We enjoy such an abundance of computing riches that it’s easy to take wonderful technological ideas for granted. Yet so many of the pieces of our modern computing experience that we consider routine today were at one time unimaginable. After all, back in the early days of computing, we were still discovering what these newfangled [...]

Thu, 01 Jan 2009 00:42:51 UTC

The 2008 Media Inflection: Meet Dr. Web, the New Gorilla

Posted By Herb Sutter

[edited 2009.01.15 to add link to DDJ's announcement] 2008 was quite a year, full of landmark events that were certainly historic, if not always welcome. If I had to pick one technology-related highlight from the past year, it would be this: A notable inflection point in the ongoing shift from traditional media to the web. Given that [...]

Thu, 01 Jan 2009 00:42:51 UTC

The 2008 Media Inflection: Meet Dr. Web, the New Gorilla

Posted By Herb Sutter

(NOTE: This article mentions significant news about Dr. Dobb’s Journal that actually is not quite officially announced yet. When it is, I’ll update this with a link to the announcement, which will include details of what it means for subscribers. In the meantime, DDJ editor Jon Erickson kindly agreed to let me blog about it [...]

Fri, 19 Dec 2008 22:49:47 UTC

TRS-80 vs. Alpha, and Parallel Optimization

Posted By Herb Sutter

Lest people get the wrong idea, I enjoy reading Jeff Atwood’s blog and agree with much of what he writes so entertainingly and provocatively. So far I’ve only responded when I strongly felt differently about something, which has been a grand total of twice now. So let me also offer an example of something I wholeheartedly [...]

Thu, 18 Dec 2008 01:23:32 UTC

Rich-GUI SaaS/Web 2.0 Apps Should Not Be Considered Harmful

Posted By Herb Sutter

Yesterday, the ever-popular Jeff Atwood (of Coding Horror fame) wrote a nice piece on how not to write Web 2.0 UIs. Unfortunately, it’s exactly backwards: What he identifies as problem is in fact not only desirable, but necessary. [Aside: Jeff, I know you love pictures, but is that particular one really necessary? Yes, I know it's [...]

Wed, 03 Dec 2008 00:00:13 UTC

Effective Concurrency: Measuring Parallel Performance – Optimizing a Concurrent Queue

Posted By Herb Sutter

This month’s Effective Concurrency column is special — it turned into a feature article. “Measuring Parallel Performance: Optimizing a Concurrent Queue” just went live on DDJ’s site, and will also appear in the print magazine. From the article: How would you write a fast, internally synchronized queue, one that callers can use without any explicit external locking [...]

Sun, 02 Nov 2008 18:25:16 UTC

(out of order) Effective Concurrency: Writing Lock-Free Code – A Corrected Queue

Posted By Herb Sutter

Oops, I just noticed that I forgot to blog about one recent Effective Concurrency column: “Writing Lock-Free Code: A Corrected Queue” which also appeared in the October 2008 print issue of Dr. Dobb’s Journal. From the article: As we saw last month [1], lock-free coding is hard even for experts. There, I dissected a published lock-free queue [...]

Sun, 02 Nov 2008 18:15:29 UTC

Effective Concurrency: Understanding Parallel Performance

Posted By Herb Sutter

Wow, DDJ just posted the previous one a few days ago, and already the next Effective Concurrency column is available: “Understanding Parallel Performance” just went live, and will also appear in the print magazine. From the article: Let’s say that we’ve slickly written our code to apply divide-and-conquer algorithms and concurrent data structures and parallel traversals and [...]

Thu, 30 Oct 2008 14:18:03 UTC

Effective Concurrency: Writing a Generalized Concurrent Queue

Posted By Herb Sutter

The next Effective Concurrency column, “Writing a Generalized Concurrent Queue”, just went live on DDJ's site, and also appears in the print magazine. From the article: Last month [1], I showed code for a lock-free queue that supported the limited case of exactly two threads–one producer, and one consumer. That’s useful, but maybe not as exciting now [...]

Wed, 29 Oct 2008 01:21:37 UTC

September 2008 ISO C++ Standards Meeting: The Draft Has Landed, and a New Convener

Posted By Herb Sutter

The ISO C++ committee met in San Francisco, CA, on September 15-20. You can find the minutes here, including the votes to approve papers. The most important thing the committee accomplished was this: Complete C++0x draft published for international ballot The biggest goal entering this meeting was to make C++0x feature-complete and stay on track to publish a [...]

Thu, 02 Oct 2008 03:44:10 UTC

Stroustrup & Sutter on C++ 2008, Second Showing: October 30-31, 2008, in Boston, MA, USA

Posted By Herb Sutter

This spring at SD West in Santa Clara, Bjarne and I did a fresh-and-updated S&S event with lots of new material. We don’t usually repeat the same material, but this time there’s been such demand that we agreed to do a repeat… four weeks from today, in Boston. More information and talk descriptions follow. CONTENT ADVISORY Again, [...]

Tue, 30 Sep 2008 18:25:34 UTC

Data and Perspective

Posted By Herb Sutter

Even genuinely newsworthy topics can get distorted when commentators exaggerate or use data selectively. Here are two recent examples I noticed. “This is the worst financial crisis since the Great Depression.” It’s true that it’s bad and even historic, and this sound bite correctly doesn’t actually claim it’s as bad as the Depression. I hope it [...]

Fri, 26 Sep 2008 02:49:06 UTC

Ralph Johnson on Parallel Programming Patterns

Posted By Herb Sutter

A few days ago at UIUC, Ralph Johnson gave a very nice talk on “Parallel Programming Patterns.” It’s now online, and here’s the abstract: Parallel programming is hard. One proposed solution is to provide a standard set of patterns. Learning the patterns would help people to become expert parallel programmers. The patterns would provide a vocabulary [...]

Tue, 02 Sep 2008 04:34:42 UTC

Effective Concurrency Course: Sep 22-24, 2008

Posted By Herb Sutter

The first offering of the three-day Effective Concurrency course in May went very well. We’re doing it again later this month — this will be the last offering this year. Here’s the brief information (more details below): 3-Day Seminar: Effective Concurrency September 22-4, 2008Bellevue, WA, USADeveloped and taught by Herb Sutter This course covers the fundamental tools that software [...]

Fri, 08 Aug 2008 14:03:01 UTC

Anon on Data

Posted By Herb Sutter

The adage, quoted again this week by Bruce Schneier: The plural of “anecdote” is not “data.” But lest we enshrine raw data as holy in itself, another perspective: And the plural of “datum” is not “proof.”

Wed, 06 Aug 2008 19:05:47 UTC

Embedded Multicore Development Webinar with Lee, Reinders, and Truchard

Posted By Herb Sutter

Last month, I was privileged to be part of a panel in a webinar on Embedded Multicore Development moderated by Richard Nass, Editor-in-Chief of Embedded Systems Design, Embedded.com, and the Embedded Systems Conferences. It’s online and available on demand. I say “privileged” especially because of the stature of the other panelists. These distinguished gentlemen were: Edward A. [...]

Wed, 06 Aug 2008 00:31:41 UTC

Effective Concurrency: Lock-Free Code – A False Sense of Security

Posted By Herb Sutter

DDJ posted the next Effective Concurrency column a couple of weeks earlier than usual. You can find it here: “Lock-Free Code: A False Sense of Security”, just went live on DDJ’s site, and also appears in the print magazine.   This is a special column in a way, because I rarely critique someone else’s published code. However, [...]

Fri, 01 Aug 2008 21:59:16 UTC

Server Concurrency != Client Concurrency

Posted By Herb Sutter

Today I received an email that asked: I have recently come across your excellent articles on concurrency and the changes in software writing paradigm. They make a lot of sense, but I am having trouble translating them to my world of Telecom oriented web services, where practically everything is run through a DBMS. It seems to [...]

Thu, 31 Jul 2008 16:37:51 UTC

Effective Concurrency: The Many Faces of Deadlock

Posted By Herb Sutter

The latest Effective Concurrency column, “The Many Faces of Deadlock”, just went live on DDJ’s site, and also appears in the print magazine. From the article: … That’s the classic deadlock example from college. Of course, two isn’t a magic number. An improved definition of deadlock is: “When N threads enter a locking cycle where each [...]

Fri, 25 Jul 2008 19:43:04 UTC

Constructor Exceptions in C++, C#, and Java

Posted By Herb Sutter

I just received the following question, whose answer is the same in C++, C#, and Java. Question: In the following code, why isn’t the destructor/disposer ever called to clean up the Widget when the constructor emits an exception? You can entertain this question in your mainstream language of choice: // C++ (an edited version of the original [...]

Mon, 21 Jul 2008 15:25:43 UTC

Research Firms Are Good At Research, Not Technology Predictions

Posted By Herb Sutter

This story has been picked up semi-widely since last night. I’m sure this Steven Prentice they quote is a fine (Gartner) Fellow, but really: The computer mouse is set to die out in the next five years and will be usurped by touch screens and facial recognition, analysts believe. Seriously, does anyone who uses computers daily really [...]

Thu, 17 Jul 2008 01:16:45 UTC

Kindling

Posted By Herb Sutter

Two weeks ago, I broke down and bought a Kindle. I like it: It’s a good and well-designed reader, and the experience is much better than the other e-book reading I’ve done before on phones and PDAs. I like how you when you bookmark a page, you can see it… the corner of the page gets [...]

Tue, 15 Jul 2008 19:50:26 UTC

Hungarian Notation Is Clearly (Good|Bad)

Posted By Herb Sutter

A commenter asked: thread_local X tlsX; ?? Herb, I hope you aren't backtracking on Hungarian Notation now that you work for Microsoft. Say it aint so¿ It ain’t so. Besides, Microsoft’s Framework Developer’s Guide prominently intones: “Do not use Hungarian notation.” Warts like “tls” and “i” are about lifetime and usage, not type. Here “tls” denotes that each thread [...]

Fri, 04 Jul 2008 16:28:18 UTC

Trip Report: June 2008 ISO C++ Standards Meeting

Posted By Herb Sutter

The ISO C++ committee met in Sophia Antipolis, France on June 6-14. You can find the minutes here (note that these cover only the whole-group sessions, not the breakout technical sessions where we spend most of the week). Here's a summary of what we did, with links to the relevant papers to read for more details, [...]

Sat, 28 Jun 2008 03:02:14 UTC

Effective Concurrency: Choose Concurrency-Friendly Data Structures

Posted By Herb Sutter

The latest Effective Concurrency column, “Choose Concurrency-Friendly Data Structures”, just went live on DDJ’s site, and also appears in the print magazine. From the article: What is a high-performance data structure? To answer that question, we’re used to applying normal considerations like Big-Oh complexity, and memory overhead, locality, and traversal order. All of those apply to [...]

Fri, 27 Jun 2008 10:54:47 UTC

Seneca and Shakespeare on Goals and Opportunities

Posted By Herb Sutter

From the ancient dramatist Seneca the Younger: “Our plans miscarry because they have no aim. When a man does not know what harbor he is making for, no wind is the right wind.” And from the Bard, not to be outdone in metaphors of ships and seas: “There is a tide in the affairs of men,Which, taken at [...]

Fri, 20 Jun 2008 23:37:46 UTC

Talking Lambdas with Bill Gates on BBC

Posted By Herb Sutter

[6/25: Added YouTube availability and notes.] A few weeks ago, the BBC was in town to tape a special interview/documentary on Bill Gates. As part of the footage they got, there’s a Bill-in-a-technical-review-meeting shot that includes yours truly at a whiteboard presenting an overview-plus-drilldown on C++0x lambda functions. It was a good review; Bill’s a sharp [...]

Fri, 20 Jun 2008 20:02:53 UTC

Type Inference vs. Static/Dynamic Typing

Posted By Herb Sutter

Jeff Atwood just wrote a nice piece on why type inference is convenient, using a C# sample: I was absolutely thrilled to be able to refactor this code: StringBuilder sb = new StringBuilder(256); UTF8Encoding e = new UTF8Encoding(); MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); Into this: var sb = new StringBuilder(256); var e = new UTF8Encoding(); var md5 = new MD5CryptoServiceProvider(); It’s not dynamic typing, [...]

Wed, 11 Jun 2008 06:56:17 UTC

Stroustrup & Sutter on C++: The Interviews

Posted By Herb Sutter

While Bjarne and I were at SD for S&S, we took time out to do an interview together with Ted Neward for InformIT. I just got word that it went live… here are the links. On the OnSoftware ¿ Video (RSS): OnSoftware - Bjarne Stroustrup & Herb Sutter on the Future of C++ - Part 1 OnSoftware - [...]

Wed, 11 Jun 2008 06:27:16 UTC

Memory Model talk at Gamefest 2008

Posted By Herb Sutter

I’ll be giving a memory model talk at Gamefest in Seattle next month. Here’s a quick summary: Memory Models: Foundational Knowledge for Concurrent CodeJuly 22-23, 2008Gamefest 2008Seattle, WA, USA A memory model defines a contract between the programmer and the execution environment, that trades off: programmability via stronger guarantees for programmers, vs. performance via greater flexibility for reordering program [...]

Fri, 23 May 2008 21:53:54 UTC

Effective Concurrency: Maximize Locality, Minimize Contention

Posted By Herb Sutter

The latest Effective Concurrency column, “Maximize Locality, Minimize Contention”, just went live on DDJ’s site, and also appears in the print magazine. From the article: Want to kill your parallel application’s scalability? Easy: Just add a dash of contention. Locality is no longer just about fitting well into cache and RAM, but also about avoiding scalability busters [...]

Fri, 09 May 2008 02:43:21 UTC

Part 2 of concurrency interview with DevX

Posted By Herb Sutter

Part 2 of DevX’s interview with me about concurrency just went live on the web. From the article’s blurb: What does the future hold for concurrency? What will happen to the tools and techniques around concurrent programming? In part two of our series, concurrency guru Herb Sutter talks about these issues and what developers need to [...]

Wed, 23 Apr 2008 17:09:00 UTC

Where to find the state of ISO C++ evolution

Posted By Herb Sutter

After each ISO C++ meeting, I post a trip report update to my blog summarizing what’s new as of that meeting with a drill-down into some highlights. But wouldn’t it be handy to have an up-to-date summary scorecard with a snapshot of all proposals’ status to date? Indeed it would, and so today someone asked [...]

Fri, 18 Apr 2008 18:10:52 UTC

Quad-core a "waste of electricity"?

Posted By Herb Sutter

Jeff Atwood wrote: In my opinion, quad-core CPUs are still a waste of electricity unless you're putting them in a server. Four cores on the desktop is great for bragging rights and mathematical superiority (yep, 4 > 2), but those four cores provide almost no benchmarkable improvement in the type of applications most people use. Including [...]

Fri, 11 Apr 2008 15:15:26 UTC

Usability: Watch out for those non-errors that start with “ER”

Posted By Herb Sutter

Today I had a nice lesson in transaction codes. I did a happy little online transaction, and then the confirmation screen came up with what at first glance looked like an error. It startled me, until I read more closely: Thank you. Your transaction has been placed and received by SuperMondoCorp. Transaction Confirmation Number: ER6661234567 “Yikes!” thought I to myself, [...]

Thu, 10 Apr 2008 11:53:38 UTC

Effective Concurrency: Interrupt Politely

Posted By Herb Sutter

The latest Effective Concurrency column, “Interrupt Politely”, just went live on DDJ’s site, and will also appear in the print magazine. From the article: Violence isn’t the answer. We want to be able to stop a running thread or task when we discover that we no longer need or want to finish it. As we saw [...]

Tue, 08 Apr 2008 00:29:50 UTC

Cringe not: Vectors are guaranteed to be contiguous

Posted By Herb Sutter

Andy Koenig is the expert’s expert, and I rarely disagree with him. And, well, when I do disagree I’m invariably wrong… but there’s a first time for everything, so I’ll take my chances one more time. I completely agree with the overall sentiment of Andy’s blog entry today: I spend a fair amount of time reading (and [...]

Mon, 07 Apr 2008 23:58:49 UTC

Visual C++ 2008 Feature Pack now available

Posted By Herb Sutter

Back in November, I reported that we’d be shipping Visual C++ 2008 that month (we did!) and that we’d soon thereafter be doing the “agile thing” and shipping a major update mere months later, instead of waiting two years between releases per our prior tradition. I wrote: The update is expected to be available in beta [...]

Thu, 01 Jan 1970 00:00:00 UTC

Trip Report: February/March 2008 ISO C++ Standards Meeting

Posted By Herb Sutter

[Updated Apr 3 to note automatic deduction of return type.] The ISO C++ committee met in Bellevue, WA, USA on February 24 to March 1, 2008. Here's a quick summary of what we did (with links to the relevant papers to read for more details), and information about upcoming meetings. Lambda functions and closures (N2550) For me, easily [...]

Thu, 01 Jan 1970 00:00:00 UTC

Concurrency Interview with DevX

Posted By Herb Sutter

I recently spent an hour on the phone to talk concurrency with DevX’s Alexa Weber Morales. Part 1 of that interview just went live on the web, and focuses mostly on what concurrency and parallelism are, how to take advantage of multicore chips, and whether concurrency will ever be really accessible to mainstream developers. The [...]

Thu, 01 Jan 1970 00:00:00 UTC

New Course Available: Effective Concurrency

Posted By Herb Sutter

Many of you have kindly sent mail about my Effective Concurrency columns and asking when there’ll be a course. Well, I’m happy to announce that the answer is: May 19-21, 2008. Here’s the brief information (more details below): 3-Day Seminar: Effective Concurrency May 19-21, 2008 Bellevue, WA, USA Developed and taught by Herb Sutter This course covers the fundamental tools that [...]

Thu, 01 Jan 1970 00:00:00 UTC

Effective Concurrency: Super Linearity and the Bigger Machine

Posted By Herb Sutter

The latest Effective Concurrency column, "Super Linearity and the Bigger Machine", just went live on DDJ’s site, and will also appear in the print magazine. From the article: There are two main ways to achieve superlinear scalability, or to use P processors to compute an answer more than P times faster…: Do disproportionately less work. [...]

Thu, 01 Jan 1970 00:00:00 UTC

Stroustrup & Sutter: The Lyrics

Posted By Herb Sutter

Last week’s Stroustrup & Sutter on C++ was a huge amount of fun, and Bjarne and I want to thank everyone who came. It was a record-shattering year, and it’s great to see C++ clearly thriving and growing. A lot of people requested the (modified) lyrics to the songs we performed (yes, if you missed the [...]

Thu, 01 Jan 1970 00:00:00 UTC

How parallelism demos are useful

Posted By Herb Sutter

In "Break Amdahl’s Law!", I described ways to enable scalable applications, and wrote in part: But don’t show me ray-traced bouncing balls or Mandelbrot graphics or the other usual embarrassingly parallel but niche (or downright useless) clichés–what we’re looking for are real ideas of real software we could imagine real kids and grandmothers using that could [...]

Thu, 01 Jan 1970 00:00:00 UTC

Effective Concurrency: Going Superlinear

Posted By Herb Sutter

The latest Effective Concurrency column, "Going Superlinear", just went live on DDJ’s site, and will also appear in the print magazine. From the article: We spend most of our scalability lives inside a triangular box, shown in Figure 1. It reminds me of the early days of flight: We try to lift ourselves away from the [...]

Thu, 01 Jan 1970 00:00:00 UTC

What Not To Code

Posted By Herb Sutter

At Stroustrup & Sutter on C++ this March, one of my sessions will be on "What Not To Code" (submission link). The premise is to try something new I haven’t done before: A session dedicated to making over code nominated by you, the public, in the few weeks before the talk. In return for your [...]

Thu, 01 Jan 1970 00:00:00 UTC

Many Books

Posted By Herb Sutter

When I walk into a Chapters or a Borders, seeing the many shelves of books often recalls the ancient writer’s words about quality vs. quantity, circa 1000 BC: "To the making of many books there is no end." So true. Yet that observation predates the printing press… and netnews… and now RSS. (Yes, I’ve been thinking of [...]

Thu, 01 Jan 1970 00:00:00 UTC

Stroustrup & Sutter on C++: March 3-4, 2008, in Santa Clara, CA, USA

Posted By Herb Sutter

I’m pleased to announce that Bjarne and I are going to have another two-day event co-located with SD West in San Jose, California, this March. Most of the talks are new ones we’ve never given publicly before, along with updated classics that people liked the best in the past. This year, three of my [...]

Thu, 01 Jan 1970 00:00:00 UTC

Newton on Tact

Posted By Herb Sutter

"Tact is the knack of making a point without making an enemy."

Thu, 01 Jan 1970 00:00:00 UTC

Effective Concurrency: Break Amdahl's Law!

Posted By Herb Sutter

The latest Effective Concurrency column, "Break Amdahl’s Law!", just went live on DDJ’s site, and will also appear in the print magazine. From the article: Back in 1967, Gene Amdahl famously pointed out what seemed like a fundamental limit to how fast you can make your concurrent code: Some amount of a program’s processing is fully [...]

Thu, 01 Jan 1970 00:00:00 UTC

GotW #88: A Candidate For the “Most Important const”

Posted By Herb Sutter

A friend recently asked me whether Example 1 below is legal, and if so what it means. It led to a nice discussion I thought I’d post here. Since it was in close to GotW style already, I thought I’d do another honorary one after all these years… no, I have not made a New [...]

Thu, 01 Jan 1970 00:00:00 UTC

Effective Concurrency: Use Lock Hierarchies to Avoid Deadlock

Posted By Herb Sutter

The latest Effective Concurrency column, "Use Lock Hierarchies to Avoid Deadlock", just went live on DDJ’s site, and will also appear in the print magazine. From the article: … The only way to eliminate such a potential deadlock is to make sure that all mutexes ever held at the same time are acquired in a consistent order. [...]

Thu, 01 Jan 1970 00:00:00 UTC

Let's Be Thoughtful Out There

Posted By Herb Sutter

I knew Hanlon’s Razor: "Never attribute to malice that which can be adequately explained by stupidity." And the variants attributed to Heinlein, described on the same page as adding "… but don’t rule out malice." or "… but keep your eyes open." But I only just now came across Grey’s Law, which follows the flavor of Clarke’s [...]

Thu, 01 Jan 1970 00:00:00 UTC

TR1 in (Free) VC++ Express

Posted By Herb Sutter

A few weeks ago I blogged about the VC++ update we plan to ship in the first half of next year, which includes extensive additions to MFC as well as TR1. TR1 is the first set of library extensions published by the C++ committee, nearly all of which have also been adopted into the next [...]

Thu, 01 Jan 1970 00:00:00 UTC

Parallel Computing Releases at Microsoft

Posted By Herb Sutter

For those of you who may be interested in concurrency for Microsoft platforms, and .NET in particular, I’m happy to report some fresh announcements: MSDN has launched a Parallel Computing developer center. This is a section of the MSDN site focused on "providing information, ideas, community, and technology to developers to make it easier to write programs that perform and [...]

Thu, 01 Jan 1970 00:00:00 UTC

The Concurrency Land Rush: 2007-20??

Posted By Herb Sutter

Every time that we experience a "wave" in which the industry takes a programming paradigm that’s been growing in a niche, and brings it to the mainstream, we go through similar phases: A land rush phase during which vendors try to stake out their turf. The market sees an explosive proliferation of products trying to enable [...]