Video & On-Demand

Bjarne Stroustrup: C++ | Artificial Intelligence (AI) Podcast-- Lex Fridman

Take a listen.

Bjarne Stroustrup: C++ | Artificial Intelligence (AI) Podcast

by Lex Fridman

Summary of the podcast:

Bjarne Stroustrup is the creator of C++, a programming language that after 40 years is still one of the most popular and powerful languages in the world. Its focus on fast, stable, robust code underlies many of the biggest systems in the world that we have come to rely on as a society. If you're watching this on YouTube, many of the critical back-end component of YouTube are written in C++. Same goes for Google, Facebook, Amazon, Twitter, most Microsoft applications, Adobe applications, most database systems, and most physical systems that operate in the real-world like cars, robots, rockets that launch us into space and one day will land us on Mars. This conversation is part of the Artificial Intelligence podcast.

CopperSpice: std::variant

New video on the CopperSpice YouTube Channel:


by Barbara Geller and Ansel Sermersheim

About the video:

In this video, we discuss the std::variant class and its relationship to C++ unions. We explore the drawbacks and constraints of the union abstraction in C++, how they changed in C++11, and how variant addresses many of these shortcomings.

Please take a look and remember to subscribe!

CppCon 2019: De-fragmenting C++: Making Exceptions and RTTI More Affordable and Usable--Herb Sutter

What do you think about it?

De-fragmenting C++: Making Exceptions and RTTI More Affordable and Usable

by Herb Sutter

From the video:

A fundamental reason why C++ is successful and loved is its adherence to Stroustrup’s zero-overhead principle: You don’t pay for what you don’t use, and if you do use a feature you can’t reasonably code it better by hand. In the C++ language itself, there are only two features that violate the zero-overhead principle, exception handling and RTTI – and, unsurprisingly, these are also the only two C++ language features that every C++ compiler has switches to turn off and that are regularly discouraged or even banned. This matters because not using these features is the largest current cause of fragmentation of the C++ community into incompatible dialects, and the cause of recurring problems including type confusion security vulnerabilities arising from “didn’t down-cast using dynamic_cast because that would be too slow.” This talk is about ongoing long-term efforts to try to unify the community in this area, not by replacing exceptions and RTTI, but by doubling down: fully embracing exceptions and RTTI, and improving them so they can be zero-overhead too.

CppCon 2019: Better Code: Relationships--Sean Parent

More are coming!

Better Code: Relationships

by Sean Parent

From the video:

Computer scientists are bad at relationships. Nearly every program crash is rooted in a mismanaged relationship, yet we spend most of our time discussing types and functions and not the relationships connecting them together. This talk looks at common ways data and code are connected in an application, how those relationships are typically represented, and the problems caused by the use, and misuse of these paradigms. Then we'll look at ways to model these relationships in C++ and use them to build correct applications.

CppCon 2019: Applied WebAssembly: Compiling and Running C++ in Your Web Browser--Ben Smith

The first videos are becoming available.

Applied WebAssembly: Compiling and Running C++ in Your Web Browser

by Ben Smith

From the video:

WebAssembly is a new technology in all modern browsers designed to let you run high-performance code. Maybe you've heard of WebAssembly before, read an article or two, or even tried to use it with your software project. Since WebAssembly is a low-level language, it's easy to get bogged down in the technical details, and leave without knowing whether WebAssembly will be useful for you. In this talk, I'll take a top-down approach, showing a real problem and how WebAssembly can help.

From August to December this year, I'll be teaching C++ to students at Morehouse College. Having a tool like Compiler Explorer is invaluable as a teaching aid, since it allows the students to immediately see C++ compilation results, on any device that has a web browser. But Compiler Explorer and tools like it require a server to do compilation, so they're hard to use offline. With WebAssembly, we can run the compiler client-side, in the browser, no server required.

First, I'll show how I ported the clang compiler and linker to WebAssembly. Since Clang 8 supports WebAssembly as a compilation target, we can even run the resulting executable sandboxed in the browser. Next, we'll dive into how Clang compiles C++ constructs into WebAssembly. Finally, we'll look at some of the new WebAssembly features in development.

CppCon 2019: Speed Is Found In The Minds of People--Andrei Alexandrescu

The first videos are arriving!

Speed Is Found In The Minds of People

by Andrei Alexandrescu

From the video:

In all likelihood, sorting is one of the most researched classes of algorithms. It is a fundamental task in Computer Science, both on its own and as a step in other algorithms. Efficient algorithms for sorting and searching are now taught in core undergraduate classes. Are they at their best, or is there more blood to squeeze from that stone? This talk will explore a few less known – but more allegro! – variants of classic sorting algorithms. And as they say, the road matters more than the destination. Along the way, we'll encounter many wondrous surprises and we'll learn how to cope with the puzzling behavior of modern complex architectures.

CopperSpice: Any Optional

New video on the CopperSpice YouTube Channel:

Any Optional

by Barbara Geller and Ansel Sermersheim

About the video:

In this video, we discuss the std::any and std::optional classes, what they are, and how you might use them to write type safe code. We also talk about type safety in general, and how it relates to C++.

Please take a look and remember to subscribe!

CppCon 2018: Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)--G. Nishanov

We’re in the final countdown to this year’s CppCon, which starts on September 16. To whet your appetite for this year’s conference, here’s another of the top-rated talks from last year. Enjoy – and register today for CppCon 2019!

Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)

by G. Nishanov

Summary of the talk:

Are you doing memory lookups in a huge table?
Does your embarrassingly random access to your lookup tables lead to memory stalls?

Fear no more!

We will explore techniques that allow us to do useful work while the prefetcher is busily working on bringing the requested cache lines from main memory, by utilizing nano-coroutines.

And the best part, nano-coroutines can be easily implemented using Coroutines TS that is already available in MSVC and Clang compilers. With a little bit of library support we can utilize the coroutines to extract intra-thread parallelism and quadruple the speed up your lookups.