CppCon 2021 Keynote: Warning: std::find() is Broken! by Sean Parent Live, In Person

We’ve previously announced keynotes by Bjarne Stroustrup, Herb Sutter, Lisa Lippincott and Michael Caisse. This is the fifth of our six conference keynotes to be announced.

Sean Parent

We’re happy to announce: Sean will be in Aurora live, in person for an important discussion on requirements, guarantees, and domains and how these effect the Standard Library and what we can expect from it.

Sean Parent is a senior principal scientist and software architect for Adobe’s Software Technology Lab (v2). Sean has been at Adobe since 1993 when he joined as a senior engineer working on Photoshop and later managed Adobe’s Software Technology Lab. In 2009 Sean spent a year at Google working on Chrome OS before returning to Adobe. From 1988 through 1993 Sean worked at Apple, where he was part of the system software team that developed the technologies allowing Apple’s successful transition to PowerPC.

Here is his talk description:

We often take it for granted that calling one of the Standard algorithms will do something meaningful. For example, when invoking `position = find(first, last, value)` we expect that if an element equal to value is contained in the range `[first, last)` then `position` will point to the first such element; otherwise, position will equal `last`. But how do we know `find `will perform this operation? This talk explores requirements, guarantees, and domains, and we’ll discover that maybe `find` doesn’t.

CppCon 2021 Keynote: Small Inspiration by Michael Caisse Live, In Person

We’ve previously announced keynotes by Bjarne Stroustrup, Herb Sutter, and Lisa Lippincott. This is the fourth of our six conference keynotes to be announced.

Michael Caisse

We’re happy to announce: Michael will be in Aurora live, in person to deliver a brand-new talk about inspiring and being inspired by the embedded world around us.

Michael Caisse started using C++ with embedded systems over 30 years ago. He continues to be passionate about combining his degree in Electrical Engineering with elegant software solutions and is always excited to share his discoveries with others.

Here is his talk description:

Less than 1% of microprocessors sold each year find their way into general purpose computers. Desktops, laptops, and servers of all sizes represent a very small fraction of the compute that surrounds us. We interact with a few of these systems but most go unnoticed. These invisible, unsung embedded devices offer lessons in engineering at all scales and can provide inspiration to seasoned practitioners and future technologists.

Join me as we learn from the embedded world and become inspired to inspire.

This talk is the Keynote talk for the Embedded Track.

 

CppCon 2021 Keynote: Value in a Procedural World by Lisa Lippincott Live, In Person

We’ve previously announced keynotes by Bjarne Stroustrup and Herb Sutter. This is the third of our six conference keynotes to be announced.

Lisa Lippincott

We’re happy to announce: Lisa Lippincott will be in Aurora live, in person to deliver a brand-new talk about a fundamental basis of understanding computer programs.

Lisa Lippincott designed the software architectures of Tanium and BigFix, two systems for managing large fleets of computers. She is chair of the numerics study group of the C++ standardization committee.

Here is her talk description:

What is a value? The most common conception is that values are inhabitants of a platonic mathematical world, too far away to be examined or subjected to experiment. As a basis for understanding computer programs, this conception is awkwardly non-local and disturbingly mystical.

In this lecture, I will present a functionalist conception of value, situated locally within the realm of procedural programming. I will show how values in this conception relate directly to program execution, and examine how events within program execution are related through the stability, substitutability, and repeatability of values.

This talk is the Keynote talk for the Software Design Track.

Registration is now open for what will certainly be one of the most memorable CppCons ever this October 24-29. Register today!

Tickets are now available for both online attendees and in-person attendees who are vaccinated.

Herb Sutter live in person at CppCon 2021

As already announced, CppCon 2021 will kick off on Monday, October 25 with Bjarne Stroustrup delivering the opening keynote live in person in Aurora, Colorado, USA.

We’re happy to announce another plenary talk: Herb Sutter will be there live in person to deliver a brand-new talk about post-C++20 C++ language evolution. Here is his talk description:

Extending and Simplifying C++: Pattern Matching using is and as

C++20 is a unique historic milestone: the first edition of Standard C++ that’s “D&E-complete,” with essentially all of the features Bjarne Stroustrup outlined in The Design and Evolution of C++ for C++’s evolution. That doesn’t mean evolution is done, however, and work continues on adding a few more important features in C++23 and beyond, including reflection and pattern matching.

Herb SutterIn this talk, I’ll show the C++ pattern matching libraries and language proposals we’ve considered, and present my own contribution that builds on them. My paper has two major aims: (1) to make the syntax clean and regular, and avoid inventing a little sublanguage that works only inside “inspect”; and (2) to make it generalizable so we can use it consistently throughout the language, because matching a pattern is a broadly useful feature that ideally should not be limited to “inspect” only… for example, we would love to express patterns in “if” and “requires” conditions too.

I hope that the most important contribution is that, if we add pattern matching in a way that also provides general “match” and “extract” support throughout the language in the form of generalized “is” constraints and “as” casts, the net result is that we can actually simplify C++… yes, even as we add new features and more expressive power. How can that be simpler? By letting programmers directly express their intent where they have to express it indirectly today, by making the language more regular with fewer special cases to learn, by unifying the syntax of existing standard library features that today have a gaggle of different and divergent styles (e.g., variant, optional), and by providing one general and expressive way to use patterns cleanly throughout C++.

Registration DeskRegistration is now open for what will certainly be one of the most memorable CppCons ever this October 24-29. Register today!

Tickets are now available for both online attendees and in-person attendees who are vaccinated, with the goal of opening registration further as we all learn more about what will be safe.

CppCon 2021 Program Announced

The Main Program for CppCon 2021 is now live!

This year, CppCon is a hybrid format, so we are presenting four tracks for onsite attendees and five tracks for online attendees.

Online attendees will be able to participate in onsite sessions via “simul-cast” for most sessions. A few onsite sessions will be recorded and rebroadcast for online attendees. Rebroadcasted sessions will feature the presenters live in the session chat room and, time allowing, live Q&A at end of the session. (Online attendees will have the ability to view recorded versions of all sessions–onsite and online–shortly after they happen.)

We’ll have over seventy breakout sessions delivered onsite and sixty additional remote sessions by the best C++ presenters in the industry, many returning from previous years as well as some exciting new voices, some of whom are able to present only because we are offering a remote presenting possibility. In addition, we’ll present our traditional onsite plenary session every day and an online opening keynote. We’ve already announced our onsite Opening Keynote and will be announcing our other five headline talks here in coming days.

This year’s Main Program features three special tracks including the Back to Basics Track, the Embedded Track, and the band new Software Design Track.

In addition to the Main Program, we’ll have the panels, lightning talks, Open Content talks, BOFs, exhibitors, social events, and classes that attendees have enjoyed in past years. Note that all but one of our classes have been moved online to allow for greater participation.

Most of the program is published, but we are still working a few surprises, so keep checking back.

We’d like to thank the Program Committee, our speakers, and the many professionals who proposed talks which we, unfortunately, just couldn’t squeeze in this year. Thank you for your hard work and enthusiastic support for this year’s program!

We hope to see you all in less than a month so register now.

Big Update with Big Thanks for a Big Program

The deadline for Main Program submissions has passed with a near-record number of submissions!

The conference organizers are grateful for, and excited about, the almost-two-hundred submissions that we received. We are excited both by the quality of the submissions and by the fact that that the vast majority of submissions were for onsite presentations.

Our Program Committee is currently hard at work reviewing and rating each submission and we know that we’ll have an amazing program for both onsite and online attendees in Aurora in October. As you know, we’ve announced that Bjarne will be our opening keynote onsite. (We are anxious to make our next onsite keynote announcement but that isn’t quite ready yet.)

 

A peek behind the curtain for those of you that have not been part of the submission/review process: Each submission receives written evaluations by several members of the CppCon Program Committee. There are two goals of each committee member as they draft these evaluations. The most obvious is to select the best possible program for CppCon attendees. On the one hand, this is easy because with so many high-quality submissions, creating a great program comes out pretty naturally, but on the other hand, it is very hard because we know that our audience has come to have great expectations of a CppCon program, not just that every individual sessions is of high quality, but that the program as a whole provides coverage of the topics that matter to our attendees, and also because the competition is fierce. The quality of the submissions that we don’t accept is getting higher every year.

Which leads us to the second goal of members as they draft their evaluations. The evaluations are, of course, shared with the submitters, so each evaluation should also contain constructive advice on how to improve the submission. For submissions that are accepted, this leads to an even better program for attendees. For submissions that are not accepted, this leads to better submissions to future programs (both at CppCon and other conferences).

Our feeling is that all submissions, from the weakest to the strongest, can be improved in some way and comments that we’ve received from submitters (both those that have been accepted and those that have not) let us know that submitters appreciate thoughtful, constructive comments.

Creating multiple, thoughtful evaluations on almost two-hundred submissions touching on virtually every topic of C++ and software design in less than a month is a mammoth task, but we know that the CppCon 2021 Program that you’ll be seeing in Aurora and/or online, will be something that we as organizers, the Program Committee, and the presenters, will be proud to present.

Early Bird Deadline is This Week

If you’ve been thinking about registering for CppCon 2021 onsite or online, now is the time — EarlyBird discount ends this week!

Because of the health and travel situation, we know that many who want to attend onsite don’t know for certain yet if they can make it onsite. Here are some things to help ease your mind about registering:

  • Any Online Early Bird registration can be upgraded later (even after the Early Bird deadline) to an Early Bird rate onsite registration. So if you get an Online Early Bird registration now, you will lock in the Early Bird rate if you later convert it to any of our onsite registration options.
  • Any onsite registration can be converted to an online registration with full refund of the difference in rate, no questions asked.
  • Any registration can be cancelled for a full refund with no questions asked until the day before the conference (October 23rd). So if you plan to attend onsite and get an Early Bird onsite registration now, you can get your money back in full if it turns out international travel restrictions or any other issues get in the way.
  • The Gaylord Rockies‘ refund policy for hotel room reservations is a complete refund with notice that is three working days prior to arrival date.

These registration/refund policies and the low price on Online Early Bird registration make that a no-brainer. Online registration gives you exclusive early access to all the videos that we’ll be adding to the CppCon YouTube channel, but it is easy to justify the cost of Online Early Bird registration even if you are only able to spend one day (or even just a couple of evenings) watching sessions and engaging online with CppCon attendees in our awesome virtual venue. Early access to session videos is just an amazing bonus.

Don’t let COVID deprive you of the opportunity to engage with the C++ community in 2021!

In any case, you can register now to lock in the Early Bird rate. We look forward to seeing many of you in person or online at CppCon 2021 for what will surely be one of the most memorable CppCons ever.

Announcing CppCon Academy 2021 Classes

class attendeesRegistration is open for almost twenty CppCon Academy classes that will be held in the days before or after CppCon 2021 in October.

Four classes are open to online attendees and the rest will be offered to onsite attendees at the Gaylord Rockies in Aurora.

This year we are offering classes that range from those that are focused on updating you to the latest versions of C++, to those focusing on better code, testing, or design skills. This year we are offering a class on computing in mixed CPU/GPU/FPGA environments and two on embedded programming.

class instructor with studentsRead about all the offered classes on the CppCon Academy 2021 page. There are seven classes on Language Updates, four on Design, three on Better Code, two on Quality, two on Embedded Programming, and one on Heterogeneous Computing.

Online classes will be held either on the last three business days of the week before the conference or the first three business days of the week after the conference.

Onsite classes are held the weekends immediately before and after the conference.

class instructorMost of the classes feature two days (onsite) or three days (online) of class instruction and all feature hands-on opportunities to improve your programming skills.

CppCon instructors are selected from the best C++ instructors in the world. They feature rare combinations of deep technical knowledge, extensive development experience, and the ability to explain things in an approachable manner.

Reminder: Early Bird Registration ends at the end of July, so register now!

Classic Railroad Field Trip Announced

The CppCon 2021 Field Trip will be an adventure into the mountains to sample classic mountain cuisine from Beau Jo’s, followed by a train trip over the far-famed Georgetown Loop.

Georgetown Loop Railroad

Spend a fun-filled Sunday on October 24 with fellow attendees as we ascend to 9,101 ft (2,774 m) via air-conditioned buses and railroad coaches. This trip will encompass Geologic, Historic, Natural, and Culinary wonders west of Denver.


North Denver Metro C++ MeetupThis year’s field trip is sponsored by the North Denver Metro C++ Meetup. Jason Turner, one of the meetup’s organizers, recommends:

You cannot go wrong with a trip up to Georgetown and a stop at Beau Jo’s for a truly Colorado experience. You get a feel for the amazing Rocky Mountains, a look into the mining past that shaped this state, and a taste of a Colorado classic! Just be aware these Pizzas can be ridiculously huge (and crazy tasty)! We always take visiting family to one of the Beau Jo’s locations, and you cannot beat the original in Idaho Springs. There’s also a local brewery right next door with grab-and-go, if you’re into that kind of thing.

Mountain Pie


Beau Jo’s is a Colorado institution, where we will sample some of their wonderful mountain pizzas in Idaho Springs, a mining boom town, now a historic landmark near the heart of many outdoor adventures.

After lunch, we will venture higher to Georgetown, and board the steam-powered Georgetown Loop to wind around an amazing train trip up and over itself to climb the mountain valley into Silver Plume, a mining camp started in the 1860’s silver rush.

If you are arriving for CppCon 2021 by Sunday morning, this is your opportunity to get to know some of your fellow attendees while touring some of the inspiring wonders Colorado has to offer.

See the CppCon 2021 Field Trip page for details.

Register here!

New Software Design Track at CppCon 2021

CppCon 2021 introduces a new Software Design Track.
Lisa LippincottEvery year CppCon presents dozens of sessions on how to produce high quality C++ code. But high quality software products require more of software engineers than just good coding. Great software products are built by engineers with great design skills, so CppCon also presents sessions focused on designing software components of high quality.
 
To advance this objective, CppCon now features a dedicated Software Design Track. This track will address the art of managing the interactions between software entities, of reducing coupling and of creating good and meaningful abstractions. It will focus on maintainable code and on how to design for changeability, scalability, extensibility, and testability.
 
Klaus IglbergerIf you have something to share about software design and want to contribute your experience to the entire C++ community, please consider submitting a talk. Possible topics include design techniques for all paradigms and both static and dynamic polymorphism, design and architectural patterns, good and bad experiences from real world projects (i.e. war stories), and even advice on how to manage big projects via proper software organization. The call for submission is open till July 19th.
Please contact the Software Design Track Chairs, Klaus Iglberger and Mike Shah, if you have any questions or suggestions.